void VideoConverter::started() { initTimer(); videoItem->setAsConverting(this); emit conversionStarted(videoItem); }
soundKonverter::soundKonverter() : KXmlGuiWindow(), logViewer( 0 ), systemTray( 0 ), autoclose( false ) { // accept dnd setAcceptDrops(true); const int fontHeight = QFontMetrics(QApplication::font()).boundingRect("M").size().height(); logger = new Logger( this ); logger->log( 1000, i18n("This is soundKonverter %1").arg(SOUNDKONVERTER_VERSION_STRING) ); logger->log( 1000, "\n" + i18n("Compiled with TagLib %1.%2.%3").arg(TAGLIB_MAJOR_VERSION).arg(TAGLIB_MINOR_VERSION).arg(TAGLIB_PATCH_VERSION) ); #if (TAGLIB_MAJOR_VERSION == 1 && TAGLIB_MINOR_VERSION < 7) logger->log( 1000, "<span style=\"color:red;\">" + i18n("Support for cover art in FLAC picture format for Xiph tags requires taglib 1.7 or later.") + "</span>" ); logger->log( 1000, "<span style=\"color:red;\">" + i18n("Support for cover art for ASF/WMA tags requires taglib 1.7 or later.") + "</span>" ); #endif #if (TAGLIB_MAJOR_VERSION == 1 && TAGLIB_MINOR_VERSION < 9) logger->log( 1000, "<span style=\"color:red;\">" + i18n("Support for tags for Ogg Opus files requires taglib 1.9 or later.") + "</span>" ); #endif config = new Config( logger, this ); config->load(); m_view = new soundKonverterView( logger, config, cdManager, this ); connect( m_view, SIGNAL(signalConversionStarted()), this, SLOT(conversionStarted()) ); connect( m_view, SIGNAL(signalConversionStopped(bool)), this, SLOT(conversionStopped(bool)) ); connect( m_view, SIGNAL(progressChanged(const QString&)), this, SLOT(progressChanged(const QString&)) ); connect( m_view, SIGNAL(showLog(int)), this, SLOT(showLogViewer(int)) ); // tell the KXmlGuiWindow that this is indeed the main widget setCentralWidget( m_view ); // then, setup our actions setupActions(); // a call to KXmlGuiWindow::setupGUI() populates the GUI // with actions, using KXMLGUI. // It also applies the saved mainwindow settings, if any, and ask the // mainwindow to automatically save settings if changed: window size, // toolbar position, icon size, etc. setupGUI( QSize(70*fontHeight,45*fontHeight), ToolBar | Keys | Save | Create ); }
ResultsPage::ResultsPage(QWidget *parent) : QWizardPage(parent), previousMessageHandler(NULL) { setTitle(tr("Processing Training Sessions...")); setSubTitle(tr("Processing will begin in a moment.")); QVBoxLayout * const vBox = new QVBoxLayout; progressBar = new QProgressBar(); vBox->addWidget(progressBar); { QHBoxLayout * const hBox = new QHBoxLayout(); showDetailsButton = new QPushButton(tr("Show details")); hBox->addWidget(showDetailsButton); hBox->addStretch(); vBox->addItem(hBox); } detailsBox = new QTextEdit(); detailsBox->setReadOnly(true); detailsBox->setVisible(false); connect(showDetailsButton, SIGNAL(clicked()), this, SLOT(showDetails())); vBox->addWidget(detailsBox); converter = new ConverterThread; connect(converter, SIGNAL(finished()), this, SLOT(conversionFinished())); connect(converter, SIGNAL(progress(int)), this, SLOT(sessionStarted(int))); connect(converter, SIGNAL(progress(int)), progressBar, SLOT(setValue(int))); connect(converter, SIGNAL(sessionBaseNamesChanged(int)), progressBar, SLOT(setMaximum(int))); connect(converter, SIGNAL(started()), this, SLOT(conversionStarted())); // This signal/slot indirection pipes all log events to the GUI thread. connect(this, SIGNAL(newMessage(QString,QColor)), this, SLOT(appendMessage(QString,QColor)), Qt::QueuedConnection); setLayout(vBox); }
soundKonverterView::soundKonverterView( Logger *_logger, Config *_config, CDManager *_cdManager, QWidget *parent ) : QWidget( parent ), config( _config ), logger( _logger ), cdManager( _cdManager ) { setAcceptDrops( true ); const int fontHeight = QFontMetrics(QApplication::font()).boundingRect("M").size().height(); // the grid for all widgets in the main window QGridLayout* gridLayout = new QGridLayout( this ); fileList = new FileList( logger, config, this ); gridLayout->addWidget( fileList, 1, 0 ); gridLayout->setRowStretch( 1, 1 ); connect( fileList, SIGNAL(fileCountChanged(int)), this, SLOT(fileCountChanged(int)) ); connect( fileList, SIGNAL(conversionStarted()), this, SLOT(conversionStarted()) ); connect( fileList, SIGNAL(conversionStopped(bool)), this, SLOT(conversionStopped(bool)) ); connect( fileList, SIGNAL(queueModeChanged(bool)), this, SLOT(queueModeChanged(bool)) ); connect( fileList, SIGNAL(showLog(int)), this, SIGNAL(showLog(int)) ); optionsLayer = new OptionsLayer( config, this ); fileList->setOptionsLayer( optionsLayer ); optionsLayer->hide(); gridLayout->addWidget( optionsLayer, 1, 0 ); connect( optionsLayer, SIGNAL(done(const KUrl::List&,ConversionOptions*,const QString&)), fileList, SLOT(addFiles(const KUrl::List&,ConversionOptions*,const QString&)) ); connect( optionsLayer, SIGNAL(saveFileList()), fileList, SLOT(save()) ); // add a horizontal box layout for the add combobutton to the grid QHBoxLayout *addBox = new QHBoxLayout(); addBox->setContentsMargins( 1, 0, 1, 0 ); // extra margin - determined by experiments gridLayout->addLayout( addBox, 3, 0 ); // create the combobutton for adding files to the file list cAdd = new ComboButton( this ); QFont font = cAdd->font(); //font.setWeight( QFont::DemiBold ); font.setPointSize( font.pointSize() + 3 ); cAdd->setFont( font ); cAdd->insertItem( KIcon("audio-x-generic"), i18n("Add files...") ); cAdd->insertItem( KIcon("folder"), i18n("Add folder...") ); cAdd->insertItem( KIcon("media-optical-audio"), i18n("Add CD tracks...") ); cAdd->insertItem( KIcon("network-workgroup"), i18n("Add url...") ); cAdd->insertItem( KIcon("view-media-playlist"), i18n("Add playlist...") ); cAdd->increaseHeight( 0.6*fontHeight ); addBox->addWidget( cAdd, 0, Qt::AlignVCenter ); connect( cAdd, SIGNAL(clicked(int)), this, SLOT(addClicked(int)) ); cAdd->setFocus(); addBox->addSpacing( fontHeight ); startAction = new KAction( KIcon("system-run"), i18n("Start"), this ); connect( startAction, SIGNAL(triggered()), fileList, SLOT(startConversion()) ); pStart = new KPushButton( KIcon("system-run"), i18n("Start"), this ); pStart->setFixedHeight( pStart->size().height() ); pStart->setEnabled( false ); startAction->setEnabled( false ); addBox->addWidget( pStart, 0, Qt::AlignVCenter ); connect( pStart, SIGNAL(clicked()), fileList, SLOT(startConversion()) ); stopActionMenu = new KActionMenu( KIcon("process-stop"), i18n("Stop"), this ); stopActionMenu->setDelayed( false ); killAction = new KAction( KIcon("flag-red"), i18n("Stop immediatelly"), this ); stopActionMenu->addAction( killAction ); connect( killAction, SIGNAL(triggered()), fileList, SLOT(killConversion()) ); stopAction = new KAction( KIcon("flag-yellow"), i18n("Stop after current conversions are completed"), this ); stopActionMenu->addAction( stopAction ); connect( stopAction, SIGNAL(triggered()), fileList, SLOT(stopConversion()) ); continueAction = new KAction( KIcon("flag-green"), i18n("Continue after current conversions are completed"), this ); stopActionMenu->addAction( continueAction ); connect( continueAction, SIGNAL(triggered()), fileList, SLOT(continueConversion()) ); queueModeChanged( true ); pStop = new KPushButton( KIcon("process-stop"), i18n("Stop"), this ); pStop->setFixedHeight( pStop->size().height() ); pStop->hide(); stopActionMenu->setEnabled( false ); pStop->setMenu( stopActionMenu->menu() ); addBox->addWidget( pStop, 0, Qt::AlignVCenter ); addBox->addSpacing( fontHeight ); progressIndicator = new ProgressIndicator( this, ProgressIndicator::Feature( ProgressIndicator::FeatureSpeed | ProgressIndicator::FeatureTime ) ); addBox->addWidget( progressIndicator, 0, Qt::AlignVCenter ); connect( progressIndicator, SIGNAL(progressChanged(const QString&)), this, SIGNAL(progressChanged(const QString&)) ); connect( fileList, SIGNAL(timeChanged(float)), progressIndicator, SLOT(timeChanged(float)) ); connect( fileList, SIGNAL(finished(bool)), progressIndicator, SLOT(finished(bool)) ); Convert *convert = new Convert( config, fileList, logger, this ); connect( fileList, SIGNAL(convertItem(FileListItem*)), convert, SLOT(add(FileListItem*)) ); connect( fileList, SIGNAL(killItem(FileListItem*)), convert, SLOT(kill(FileListItem*)) ); connect( fileList, SIGNAL(itemRemoved(FileListItem*)), convert, SLOT(itemRemoved(FileListItem*)) ); connect( convert, SIGNAL(finished(FileListItem*,FileListItem::ReturnCode,bool)), fileList, SLOT(itemFinished(FileListItem*,FileListItem::ReturnCode,bool)) ); connect( convert, SIGNAL(rippingFinished(const QString&)), fileList, SLOT(rippingFinished(const QString&)) ); connect( convert, SIGNAL(finishedProcess(int,bool,bool)), logger, SLOT(processCompleted(int,bool,bool)) ); connect( convert, SIGNAL(updateTime(float)), progressIndicator, SLOT(update(float)) ); connect( convert, SIGNAL(timeFinished(float)), progressIndicator, SLOT(timeFinished(float)) ); }