/** * @brief Emits sigTvShowSelected or sigEpisodeSelected * @param index * @param previous */ void TvShowFilesWidget::onItemActivated(QModelIndex index, QModelIndex previous) { qDebug() << "Entered"; Q_UNUSED(previous); if (!index.isValid()) { qDebug() << "Invalid index"; emit sigNothingSelected(); return; } QModelIndex sourceIndex = m_tvShowProxyModel->mapToSource(index); if (Manager::instance()->tvShowModel()->getItem(sourceIndex)->type() == TypeTvShow) { emit sigTvShowSelected(Manager::instance()->tvShowModel()->getItem(sourceIndex)->tvShow()); } else if (Manager::instance()->tvShowModel()->getItem(sourceIndex)->type() == TypeEpisode) { emit sigEpisodeSelected(Manager::instance()->tvShowModel()->getItem(sourceIndex)->tvShowEpisode()); } }
/** * @brief MainWindow::MainWindow * @param parent */ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); MainWindow::m_instance = this; qDebug() << "MediaElch version" << QApplication::applicationVersion() << "starting up"; for (int i=WidgetMovies ; i!=WidgetCertifications ; i++) { QMap<MainActions, bool> actions; for (int n=ActionSearch ; n!=ActionExport ; n++) { actions.insert(static_cast<MainActions>(n), false); } if (static_cast<MainWidgets>(i) == WidgetMovies || static_cast<MainWidgets>(i) == WidgetTvShows || static_cast<MainWidgets>(i) == WidgetConcerts) actions[ActionFilterWidget] = true; m_actions.insert(static_cast<MainWidgets>(i), actions); } m_aboutDialog = new AboutDialog(ui->centralWidget); m_supportDialog = new SupportDialog(ui->centralWidget); m_settingsWindow = new SettingsWindow(ui->centralWidget); m_filterWidget = new FilterWidget(); m_fileScannerDialog = new FileScannerDialog(ui->centralWidget); m_xbmcSync = new XbmcSync(ui->centralWidget); m_renamer = new Renamer(ui->centralWidget); m_settings = Settings::instance(this); m_exportDialog = new ExportDialog(this); setupToolbar(); MessageBox::instance(this)->reposition(this->size()); Manager::instance(); if (!m_settings->mainSplitterState().isNull()) { ui->movieSplitter->restoreState(m_settings->mainSplitterState()); ui->tvShowSplitter->restoreState(m_settings->mainSplitterState()); ui->setsWidget->splitter()->restoreState(m_settings->mainSplitterState()); ui->concertSplitter->restoreState(m_settings->mainSplitterState()); ui->genreWidget->splitter()->restoreState(m_settings->mainSplitterState()); ui->certificationWidget->splitter()->restoreState(m_settings->mainSplitterState()); } if (m_settings->mainWindowSize().isValid() && !m_settings->mainWindowPosition().isNull()) { #ifdef Q_OS_MAC // Ugly workaround from https://bugreports.qt-project.org/browse/QTBUG-3116 // to fix invisible toolbar on mac bool workaround = !isVisible(); if (workaround) { // make "invisible" setWindowOpacity(0); // let Qt update its frameStruts show(); } resize(m_settings->mainWindowSize()); if (workaround) { move(m_settings->mainWindowPosition()); setWindowOpacity(1); } #else resize(m_settings->mainWindowSize()); move(m_settings->mainWindowPosition()); #endif #ifdef Q_OS_WIN32 if (m_settings->mainWindowMaximized()) showMaximized(); #endif } // Size for Screenshots // resize(1121, 735); #ifdef Q_OS_MAC MacFullscreen::addFullscreen(this); #endif connect(ui->filesWidget, SIGNAL(movieSelected(Movie*)), ui->movieWidget, SLOT(setMovie(Movie*))); connect(ui->filesWidget, SIGNAL(movieSelected(Movie*)), ui->movieWidget, SLOT(setEnabledTrue(Movie*))); connect(ui->filesWidget, SIGNAL(noMovieSelected()), ui->movieWidget, SLOT(clear())); connect(ui->filesWidget, SIGNAL(noMovieSelected()), ui->movieWidget, SLOT(setDisabledTrue())); connect(ui->filesWidget, SIGNAL(sigStartSearch()), this, SLOT(onActionSearch())); connect(ui->concertFilesWidget, SIGNAL(concertSelected(Concert*)), ui->concertWidget, SLOT(setConcert(Concert*))); connect(ui->concertFilesWidget, SIGNAL(concertSelected(Concert*)), ui->concertWidget, SLOT(setEnabledTrue(Concert*))); connect(ui->concertFilesWidget, SIGNAL(noConcertSelected()), ui->concertWidget, SLOT(clear())); connect(ui->concertFilesWidget, SIGNAL(noConcertSelected()), ui->concertWidget, SLOT(setDisabledTrue())); connect(ui->tvShowFilesWidget, SIGNAL(sigTvShowSelected(TvShow*)), ui->tvShowWidget, SLOT(onTvShowSelected(TvShow*))); connect(ui->tvShowFilesWidget, SIGNAL(sigSeasonSelected(TvShow*,int)), ui->tvShowWidget, SLOT(onSeasonSelected(TvShow*,int))); connect(ui->tvShowFilesWidget, SIGNAL(sigEpisodeSelected(TvShowEpisode*)), ui->tvShowWidget, SLOT(onEpisodeSelected(TvShowEpisode*))); connect(ui->tvShowFilesWidget, SIGNAL(sigTvShowSelected(TvShow*)), ui->tvShowWidget, SLOT(onSetEnabledTrue(TvShow*))); connect(ui->tvShowFilesWidget, SIGNAL(sigSeasonSelected(TvShow*,int)), ui->tvShowWidget, SLOT(onSetEnabledTrue(TvShow*, int))); connect(ui->tvShowFilesWidget, SIGNAL(sigEpisodeSelected(TvShowEpisode*)), ui->tvShowWidget, SLOT(onSetEnabledTrue(TvShowEpisode*))); connect(ui->tvShowFilesWidget, SIGNAL(sigNothingSelected()), ui->tvShowWidget, SLOT(onClear())); connect(ui->tvShowFilesWidget, SIGNAL(sigNothingSelected()), ui->tvShowWidget, SLOT(onSetDisabledTrue())); connect(ui->movieWidget, SIGNAL(actorDownloadProgress(int,int,int)), this, SLOT(progressProgress(int,int,int))); connect(ui->movieWidget, SIGNAL(actorDownloadStarted(QString,int)), this, SLOT(progressStarted(QString,int))); connect(ui->movieWidget, SIGNAL(actorDownloadFinished(int)), this, SLOT(progressFinished(int))); connect(ui->tvShowWidget, SIGNAL(sigDownloadsStarted(QString,int)), this, SLOT(progressStarted(QString,int))); connect(ui->tvShowWidget, SIGNAL(sigDownloadsProgress(int,int,int)), this, SLOT(progressProgress(int,int,int))); connect(ui->tvShowWidget, SIGNAL(sigDownloadsFinished(int)), this, SLOT(progressFinished(int))); connect(m_filterWidget, SIGNAL(sigFilterChanged(QList<Filter*>,QString)), this, SLOT(onFilterChanged(QList<Filter*>,QString))); connect(ui->movieSplitter, SIGNAL(splitterMoved(int,int)), this, SLOT(moveSplitter(int,int))); connect(ui->tvShowSplitter, SIGNAL(splitterMoved(int,int)), this, SLOT(moveSplitter(int,int))); connect(ui->setsWidget->splitter(), SIGNAL(splitterMoved(int,int)), this, SLOT(moveSplitter(int,int))); connect(ui->genreWidget->splitter(), SIGNAL(splitterMoved(int,int)), this, SLOT(moveSplitter(int,int))); connect(ui->certificationWidget->splitter(), SIGNAL(splitterMoved(int,int)), this, SLOT(moveSplitter(int,int))); connect(ui->concertSplitter, SIGNAL(splitterMoved(int,int)), this, SLOT(moveSplitter(int,int))); connect(Manager::instance()->tvShowFileSearcher(), SIGNAL(tvShowsLoaded(int)), ui->tvShowFilesWidget, SLOT(renewModel())); connect(m_fileScannerDialog, SIGNAL(accepted()), this, SLOT(setNewMarks())); connect(m_xbmcSync, SIGNAL(sigTriggerReload()), this, SLOT(onTriggerReloadAll())); connect(m_xbmcSync, SIGNAL(sigFinished()), this, SLOT(onXbmcSyncFinished())); connect(m_renamer, SIGNAL(sigFilesRenamed(Renamer::RenameType)), this, SLOT(onFilesRenamed(Renamer::RenameType))); connect(m_settingsWindow, SIGNAL(sigSaved()), this, SLOT(onRenewModels()), Qt::QueuedConnection); connect(ui->setsWidget, SIGNAL(sigJumpToMovie(Movie*)), this, SLOT(onJumpToMovie(Movie*))); connect(ui->certificationWidget, SIGNAL(sigJumpToMovie(Movie*)), this, SLOT(onJumpToMovie(Movie*))); connect(ui->genreWidget, SIGNAL(sigJumpToMovie(Movie*)), this, SLOT(onJumpToMovie(Movie*))); MovieSearch::instance(ui->centralWidget); TvShowSearch::instance(ui->centralWidget); ImageDialog::instance(ui->centralWidget); MovieListDialog::instance(ui->centralWidget); ImagePreviewDialog::instance(ui->centralWidget); ConcertSearch::instance(ui->centralWidget); TrailerDialog::instance(ui->centralWidget); TvTunesDialog::instance(ui->centralWidget); NameFormatter::instance(this); MovieMultiScrapeDialog::instance(ui->centralWidget); #ifdef Q_OS_WIN32 setStyleSheet(styleSheet() + " #centralWidget { border-bottom: 1px solid rgba(0, 0, 0, 100); } "); QFont font = ui->labelMovies->font(); font.setPointSize(font.pointSize()-3); font.setBold(true); ui->labelMovies->setFont(font); ui->labelConcerts->setFont(font); ui->labelShows->setFont(font); #endif // hack. without only the fileScannerDialog pops up and blocks until it has finished show(); onMenu(WidgetMovies); // Start scanning for files QTimer::singleShot(0, m_fileScannerDialog, SLOT(exec())); }