mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-11-04 08:04:12 +01:00 
			
		
		
		
	* Cleaned up deprecation warnings for 'QString::sprintf()'. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
		
			
				
	
	
		
			220 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			220 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// render_dialog.cpp
 | 
						|
//
 | 
						|
// Render Log Dialog for Rivendell.
 | 
						|
//
 | 
						|
//   (C) Copyright 2020-2021 Fred Gleason <fredg@paravelsystems.com>
 | 
						|
//
 | 
						|
//   This program is free software; you can redistribute it and/or modify
 | 
						|
//   it under the terms of the GNU General Public License version 2 as
 | 
						|
//   published by the Free Software Foundation.
 | 
						|
//
 | 
						|
//   This program is distributed in the hope that it will be useful,
 | 
						|
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
//   GNU General Public License for more details.
 | 
						|
//
 | 
						|
//   You should have received a copy of the GNU General Public
 | 
						|
//   License along with this program; if not, write to the Free Software
 | 
						|
//   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
						|
//
 | 
						|
 | 
						|
#include <rdconf.h>
 | 
						|
 | 
						|
#include "render_dialog.h"
 | 
						|
 | 
						|
RenderDialog::RenderDialog(QWidget *parent)
 | 
						|
  : RDDialog(parent)
 | 
						|
{
 | 
						|
  d_start_line=NULL;
 | 
						|
  d_end_line=NULL;
 | 
						|
  
 | 
						|
  setWindowTitle("RDCastManager - "+tr("Log Render Options"));
 | 
						|
 | 
						|
  //
 | 
						|
  // Fix the Window Size
 | 
						|
  //
 | 
						|
  setMinimumSize(sizeHint());
 | 
						|
  setMaximumSize(sizeHint());
 | 
						|
 | 
						|
  //
 | 
						|
  // Dialogs
 | 
						|
  //
 | 
						|
  d_log_dialog=new LogDialog(this);
 | 
						|
 | 
						|
  //
 | 
						|
  // Start Time
 | 
						|
  //
 | 
						|
  d_start_time_box=new QComboBox(this);
 | 
						|
  connect(d_start_time_box,SIGNAL(activated(int)),
 | 
						|
	  this,SLOT(startTimeActivatedData(int)));
 | 
						|
  d_start_time_box->insertItem(0,tr("[now]"));
 | 
						|
  d_start_time_box->insertItem(1,tr("As Specified"));
 | 
						|
  d_start_time_label=new QLabel(tr("Virtual Start Time")+":",this);
 | 
						|
  d_start_time_label->setFont(labelFont());
 | 
						|
  d_start_time_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
 | 
						|
  d_start_time_edit=new RDTimeEdit(this);
 | 
						|
  d_start_time_edit->setDisabled(true);
 | 
						|
 | 
						|
  //
 | 
						|
  // Ignore STOP
 | 
						|
  //
 | 
						|
  d_ignorestop_box=new QComboBox(this);
 | 
						|
  d_ignorestop_box->insertItem(0,tr("Stop Rendering"));
 | 
						|
  d_ignorestop_box->insertItem(1,tr("Treat as PLAY"));
 | 
						|
  d_ignorestop_label=new QLabel(tr("At STOP transition")+":",this);
 | 
						|
  d_ignorestop_label->setFont(labelFont());
 | 
						|
  d_ignorestop_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
 | 
						|
 | 
						|
  //
 | 
						|
  // Select Log Events
 | 
						|
  //
 | 
						|
  d_select_label_label=new QLabel(tr("Selected Log Events"),this);
 | 
						|
  d_select_label_label->setFont(labelFont());
 | 
						|
  d_select_label_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
 | 
						|
  d_select_label=new QLabel(this);
 | 
						|
  d_select_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter);
 | 
						|
  d_select_label->setFrameStyle(QFrame::Plain);
 | 
						|
  d_select_label->setFrameShape(QFrame::Box);
 | 
						|
  d_select_label->setLineWidth(1);
 | 
						|
  d_select_label->setMidLineWidth(1);
 | 
						|
  d_select_button=new QPushButton(tr("Select"),this);
 | 
						|
  d_select_button->setFont(subButtonFont());
 | 
						|
  connect(d_select_button,SIGNAL(clicked()),this,SLOT(selectData()));
 | 
						|
 | 
						|
  //
 | 
						|
  // OK Button
 | 
						|
  //
 | 
						|
  d_ok_button=new QPushButton(tr("OK"),this);
 | 
						|
  d_ok_button->setGeometry(sizeHint().width()-90,sizeHint().height()-60,80,50);
 | 
						|
  d_ok_button->setFont(buttonFont());
 | 
						|
  d_ok_button->setDefault(true);
 | 
						|
  connect(d_ok_button,SIGNAL(clicked()),this,SLOT(okData()));
 | 
						|
 | 
						|
  //
 | 
						|
  // Cancel Button
 | 
						|
  //
 | 
						|
  d_cancel_button=new QPushButton(tr("Cancel"),this);
 | 
						|
  d_cancel_button->
 | 
						|
    setGeometry(sizeHint().width()-90,sizeHint().height()-60,80,50);
 | 
						|
  d_cancel_button->setFont(buttonFont());
 | 
						|
  connect(d_cancel_button,SIGNAL(clicked()),this,SLOT(cancelData()));
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
RenderDialog::~RenderDialog()
 | 
						|
{
 | 
						|
  delete d_log_dialog;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
QSize RenderDialog::sizeHint() const
 | 
						|
{
 | 
						|
  return QSize(500,145);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int RenderDialog::exec(RDLogModel *model,QTime *start_time,
 | 
						|
		       bool *ignore_stops,int *start_line,int *end_line)
 | 
						|
{
 | 
						|
  d_model=model;
 | 
						|
  d_start_time=start_time;
 | 
						|
  d_start_time_edit->setDisabled(start_time->isNull());
 | 
						|
  d_start_time_box->setCurrentIndex(0);
 | 
						|
  d_ignore_stops=ignore_stops;
 | 
						|
  if(*ignore_stops) {
 | 
						|
    d_ignorestop_box->setCurrentIndex(1);
 | 
						|
  }
 | 
						|
  else {
 | 
						|
    d_ignorestop_box->setCurrentIndex(0);
 | 
						|
  }
 | 
						|
  d_start_line=start_line;
 | 
						|
  d_modified_start_line=*start_line;
 | 
						|
  d_modified_end_line=*end_line;
 | 
						|
  d_end_line=end_line;
 | 
						|
  UpdateLogEventsSelection();
 | 
						|
 | 
						|
  return QDialog::exec();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RenderDialog::startTimeActivatedData(int n)
 | 
						|
{
 | 
						|
  d_start_time_edit->setEnabled(n==1);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RenderDialog::selectData()
 | 
						|
{
 | 
						|
  if(d_log_dialog->
 | 
						|
     exec(d_model,&d_modified_start_line,&d_modified_end_line)) {
 | 
						|
    UpdateLogEventsSelection();
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RenderDialog::okData()
 | 
						|
{
 | 
						|
  if(d_start_time_box->currentIndex()==0) {
 | 
						|
    *d_start_time=QTime();
 | 
						|
  }
 | 
						|
  else {
 | 
						|
    *d_start_time=d_start_time_edit->time();
 | 
						|
  }
 | 
						|
  *d_ignore_stops=d_ignorestop_box->currentIndex();
 | 
						|
  *d_start_line=d_modified_start_line;
 | 
						|
  *d_end_line=d_modified_end_line;
 | 
						|
 | 
						|
  done(true);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RenderDialog::cancelData()
 | 
						|
{
 | 
						|
  done(false);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RenderDialog::closeEvent(QCloseEvent *e)
 | 
						|
{
 | 
						|
  cancelData();
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RenderDialog::resizeEvent(QResizeEvent *e)
 | 
						|
{
 | 
						|
  d_start_time_label->setGeometry(10,2,135,20);
 | 
						|
  d_start_time_box->setGeometry(150,2,160,20);
 | 
						|
  d_start_time_edit->setGeometry(315,2,120,20);
 | 
						|
 | 
						|
  d_ignorestop_label->setGeometry(10,24,135,20);
 | 
						|
  d_ignorestop_box->setGeometry(150,24,160,20);
 | 
						|
 | 
						|
  d_select_label_label->setGeometry(10,46,135,20);
 | 
						|
  d_select_label->setGeometry(150,46,160,20);
 | 
						|
  d_select_button->setGeometry(315,43,70,24);
 | 
						|
 | 
						|
  d_ok_button->setGeometry(size().width()-180,size().height()-60,80,50);
 | 
						|
  d_cancel_button->setGeometry(size().width()-90,size().height()-60,80,50);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
void RenderDialog::UpdateLogEventsSelection()
 | 
						|
{
 | 
						|
  if((d_modified_start_line==0)&&(d_modified_end_line==
 | 
						|
				  (d_model->lineCount()-1))) {
 | 
						|
    d_select_label->setText(tr("All lines"));
 | 
						|
  }
 | 
						|
  else {
 | 
						|
    if(d_modified_start_line==d_modified_end_line) {
 | 
						|
      d_select_label->setText(tr("Line")+
 | 
						|
			      QString::asprintf(" %d",d_modified_start_line));
 | 
						|
    }
 | 
						|
    else {
 | 
						|
      d_select_label->setText(tr("Lines")+
 | 
						|
			      QString::asprintf(" %d ",d_modified_start_line)+
 | 
						|
			      tr("through")+
 | 
						|
			      QString::asprintf(" %d",d_modified_end_line));
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |