From 856119c5a43b4781b051b93a0713c152cfd99f85 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 15 Apr 2022 13:27:34 +0200 Subject: Make it run with Qt6 This is a huge commit. Changes: * Obviously, make it compile * Make it run (only scarcely tested) * get rid of most of clang's warnings Let's see what surprises are in store... --- fswidget.cpp | 120 ++++++++++++++++++++++------------------------------------- 1 file changed, 45 insertions(+), 75 deletions(-) (limited to 'fswidget.cpp') diff --git a/fswidget.cpp b/fswidget.cpp index 7bae773..79215d3 100644 --- a/fswidget.cpp +++ b/fswidget.cpp @@ -19,10 +19,9 @@ #include #include #include -#include -#include #include #include +#include #include "fswidget.h" #include "helper.h" @@ -34,7 +33,6 @@ #include "fsproxy.h" #include "smview.h" #include "viewer.h" -#include "videoviewer.h" FSWidget::FSWidget(QWidget *parent) : QWidget(parent) { mMovieWizard = new NewMovieWizard(this); @@ -42,9 +40,6 @@ FSWidget::FSWidget(QWidget *parent) : QWidget(parent) { mViewer = new Viewer; mNewPicsDlg = new NewPicsDialog; mPlayer = new QProcess(qApp); - mVideoViewer = new VideoViewer; - mVideoViewer->setVisible(false); - connect(mVideoViewer->player(), &QMediaPlayer::stateChanged, this, &FSWidget::playerStateChanged); connect(mPlayer, QOverload::of(&QProcess::finished), this, &FSWidget::doPlay); setPalette(qApp->palette()); setupWidget(); @@ -71,10 +66,10 @@ void FSWidget::setupWidget(){ transform.rotate(-180); QIcon buttplugLeft(buttplug.transformed(transform)); QAction *backA = new QAction(buttplugLeft, tr("Prev. dir"), this); - connect(backA, &QAction::triggered, [=] { advanceDir(-1); }); + connect(backA, &QAction::triggered, this, [=] { advanceDir(-1); }); toolbar->addAction(backA); QAction *forwardA = new QAction(buttplugRight, tr("Next dir"), this); - connect(forwardA, &QAction::triggered, [=] { advanceDir(1); }); + connect(forwardA, &QAction::triggered, this, [=] { advanceDir(1); }); toolbar->addAction(forwardA); QAction *refreshA = new QAction(QIcon(":/refresh.png"), tr("Refresh"), this); connect(refreshA, &QAction::triggered, this, &FSWidget::refresh); @@ -115,7 +110,7 @@ void FSWidget::setupWidget(){ if(!mFileView->header()->isSectionHidden(i)){ a->setChecked(true); } - connect(a, &QAction::triggered, [=] { mFileView->header()->setSectionHidden(i, a->isChecked() == false); }); + connect(a, &QAction::triggered, this, [=] { mFileView->header()->setSectionHidden(i, a->isChecked() == false); }); headerAG->addAction(a); } QIcon headerIcon = Helper::icon(Qt::transparent, qApp->palette().color(QPalette::Text), 'H', true, false); @@ -127,14 +122,14 @@ void FSWidget::setupWidget(){ toolbar->addSeparator(); toolbar->addAction(SmGlobals::instance()->globalAction()); QAction *playSelectedA = new QAction(QIcon(":/spreadingpants.png"), tr("Play selected"), this); - connect(playSelectedA, &QAction::triggered, [=] { playSelected(1, QString()); }); + connect(playSelectedA, &QAction::triggered, this, [=] { playSelected(1, QString()); }); playSelectedA->setShortcut(Qt::Key_Return); QMenu *repeatMenu = new QMenu; for(int i = 2; i < 6; ++i){ QString actionStr = QString(tr("Play %1 times")).arg(QString::number(i)); QAction *a = new QAction(actionStr, this); repeatMenu->addAction(a); - connect(a, &QAction::triggered, [=] { playSelected(i, QString()); }); + connect(a, &QAction::triggered, this, [=] { playSelected(i, QString()); }); } QAction *playRepeatMA = new QAction(tr("Play repeat"), this); playRepeatMA->setMenu(repeatMenu); @@ -146,7 +141,7 @@ void FSWidget::setupWidget(){ selectFilterA->setShortcut(tr("CTRL+j")); selectFilterA->setData(SmView::InvisibleAction); QAction *unselectAllA = new QAction(tr("unselect all..."), this); - connect(unselectAllA, &QAction::triggered, [=] { mFileView->selectionModel()->clear(); }); + connect(unselectAllA, &QAction::triggered, this, [=] { mFileView->selectionModel()->clear(); }); unselectAllA->setShortcut(tr("CTRL+k")); unselectAllA->setData(SmView::InvisibleAction); QAction *compareA = new QAction(QIcon(":/compare.png"), tr("Compare..."), this); @@ -159,7 +154,7 @@ void FSWidget::setupWidget(){ mDirCB->setSizeAdjustPolicy(QComboBox::AdjustToContents); connect(mDirCB, &QComboBox::currentTextChanged, this, &FSWidget::gatherData); QAction *addDirA = new QAction(plusIcon, tr("Add dir..."), this); - connect(addDirA, &QAction::triggered, [=] { + connect(addDirA, &QAction::triggered, this, [=] { QString startDir = QDir::homePath(); QDir cDir(mDirCB->currentText()); if(cDir.cdUp()){ @@ -169,7 +164,7 @@ void FSWidget::setupWidget(){ insertItem(mDirCB, newDir); } ); QAction *removeDirA = new QAction(minusIcon, tr("Remove dir."), this); - connect(removeDirA, &QAction::triggered, [=] { removeItem(mDirCB);} ); + connect(removeDirA, &QAction::triggered, this, [=] { removeItem(mDirCB);} ); QToolBar *dirTB = new QToolBar; dirTB->addAction(addDirA); dirTB->addAction(removeDirA); @@ -181,12 +176,12 @@ void FSWidget::setupWidget(){ connect(mFilterCB, &QComboBox::currentTextChanged, this, &FSWidget::filterMime); QAction *addFilterA = new QAction(plusIcon, tr("Add filter..."), this); - connect(addFilterA, &QAction::triggered, [=] { + connect(addFilterA, &QAction::triggered, this, [=] { QString filter = QInputDialog::getText(this, tr("Mime filter"), tr("Filter")); insertItem(mFilterCB, filter); } ); QAction *removeFilterA = new QAction(minusIcon, tr("Remove filter"), this); - connect(removeFilterA, &QAction::triggered, [=] { removeItem(mFilterCB); }); + connect(removeFilterA, &QAction::triggered, this, [=] { removeItem(mFilterCB); }); QToolBar *filterTB = new QToolBar; filterTB->addAction(addFilterA); filterTB->addAction(removeFilterA); @@ -287,11 +282,9 @@ void FSWidget::readSettings(){ pMenu->clear(); for(const QString &p : players){ QAction *a = new QAction(p, this); - connect(a, &QAction::triggered, [=] { playSelected(1, p); }); + connect(a, &QAction::triggered, this, [=] { playSelected(1, p); }); pMenu->addAction(a); } - bool fullScreen = s.value("vw/fullscreen").toBool(); - mVideoViewer->setLastFullScreen(fullScreen); } void FSWidget::writeSettings(){ @@ -311,7 +304,6 @@ void FSWidget::writeSettings(){ s.setValue("fs/filters", filters); s.setValue("fs/curfilter", curFilter); s.setValue("fs/headerdata", mFileView->header()->saveState()); - s.setValue("vw/fullscreen", mVideoViewer->lastFullScreen()); } void FSWidget::insertItem(QComboBox *cb, const QString &text){ @@ -384,7 +376,7 @@ void FSWidget::gatherData(const QString &curDir){ mFileView->setUpdatesEnabled(false); while(it.hasNext()){ QBrush currentBrush = defaultBrush; - QFileInfo fi = it.next(); + QFileInfo fi(it.next()); ++fileCount; QMimeType mimeType = mimedb.mimeTypeForFile(fi); QString mimeName = mimeType.name(); @@ -409,28 +401,28 @@ void FSWidget::gatherData(const QString &curDir){ //do this goto dance to execute as few queries as possible if(mimeName.startsWith("video")){ - if(queryCount(filesMd5Q, md5) > 0){ + if(queryCount(&filesMd5Q, md5) > 0){ currentBrush = greenBrush; presenceStr = tr("Files: MD5"); goto ci; } - if(queryCount(originMd5Q, md5)){ + if(queryCount(&originMd5Q, md5)){ currentBrush = blueBrush; presenceStr = tr("Origin: MD5"); goto ci; } - if(queryCount(filesNameQ, fi.fileName())){ + if(queryCount(&filesNameQ, fi.fileName())){ currentBrush = greenBrush; presenceStr = tr("Files: Name"); goto ci; } - if(queryCount(originNameQ, likeArg)){ + if(queryCount(&originNameQ, likeArg)){ currentBrush = blueBrush; presenceStr = tr("Origin: Name"); goto ci; } }else if(mimeName.startsWith("image")){ - if(queryCount(picsMd5Q, md5) > 0){ + if(queryCount(&picsMd5Q, md5) > 0){ currentBrush = greenBrush; presenceStr = tr("Pics: MD5"); goto ci; @@ -485,7 +477,7 @@ void FSWidget::gatherData(const QString &curDir){ mFileView->setSortingEnabled(true); mFileView->sortByColumn(sc, so); qApp->restoreOverrideCursor(); - QString msg = QString(tr("Analyzed %1 files in %2 ms using %3 queries").arg(QString::number(fileCount)).arg(QString::number(timer.elapsed())).arg(QString::number(mQueryCount))); + QString msg = QString(tr("Analyzed %1 files in %2 ms using %3 queries").arg(QString::number(fileCount), QString::number(timer.elapsed()), QString::number(mQueryCount))); emit message(msg); emit needRefreshFs(); wTitle = QString("Filesystem - [%1]").arg(curDir); @@ -583,12 +575,12 @@ void FSWidget::advanceDir(int by){ mDirCB->setCurrentIndex(nextIdx); } -int FSWidget::queryCount(QSqlQuery &q, const QString &arg){ +int FSWidget::queryCount(QSqlQuery *q, const QString &arg){ int retval = -1; - q.bindValue(":arg", arg); - q.exec(); - while(q.next()){ - retval = q.value(0).toInt(); + q->bindValue(":arg", arg); + q->exec(); + while(q->next()){ + retval = q->value(0).toInt(); } ++mQueryCount; return retval; @@ -600,7 +592,7 @@ void FSWidget::filterMime(const QString &mime){ filter = QString(); } mProxy->setFilterKeyColumn(1); - mProxy->setFilterRegExp(filter); + mProxy->setFilterRegularExpression(filter); mProxy->setFilterCaseSensitivity(Qt::CaseInsensitive); } @@ -679,42 +671,26 @@ void FSWidget::playSelected(int count, QString player){ for(const QModelIndex &idx : selected){ paths << idx.data(FullPathRole).toString(); } - QSettings s; - bool useInternal = s.value("vw/internal").toBool(); - if(useInternal && player.isEmpty()){ - QMediaPlaylist *pl = mVideoViewer->player()->playlist(); - pl->clear(); - for(int i = 0; i < count; ++i){ - for(const QString &p : paths){ - pl->addMedia(QUrl::fromLocalFile(p)); - } - } - pl->setCurrentIndex(0); - mVideoViewer->setVisible(true); - mVideoViewer->setFullScreen(mVideoViewer->lastFullScreen()); - mVideoViewer->player()->play(); - }else{ - if(mPlayer->state() != QProcess::NotRunning){ - int retval = QMessageBox::question(this, tr("Terminate player?"), tr("Terminate running instance?")); - if(retval == QMessageBox::No){ - return; - } - mPlayer->terminate(); - mPlayer->waitForFinished(); - } - if(player.isEmpty()){ - QSettings s; - player = s.value("programs_movieviewer/default").toString(); - } - QPair playerData = Helper::programData("movieviewer", player); - mPlayerArgs = playerData.second; - mPlaylist.clear(); - for(int i = 0; i < count; ++i){ - mPlaylist << paths; + if(mPlayer->state() != QProcess::NotRunning){ + int retval = QMessageBox::question(this, tr("Terminate player?"), tr("Terminate running instance?")); + if(retval == QMessageBox::No){ + return; } - mPlayer->setProgram(playerData.first); - doPlay(); + mPlayer->terminate(); + mPlayer->waitForFinished(); + } + if(player.isEmpty()){ + QSettings s; + player = s.value("programs_movieviewer/default").toString(); + } + QPair playerData = Helper::programData("movieviewer", player); + mPlayerArgs = playerData.second; + mPlaylist.clear(); + for(int i = 0; i < count; ++i){ + mPlaylist << paths; } + mPlayer->setProgram(playerData.first); + doPlay(); } void FSWidget::doPlay(){ @@ -736,10 +712,10 @@ void FSWidget::selectFilter(){ return; } mFileView->selectionModel()->clearSelection(); - QRegExp re(retval); + QRegularExpression re(retval); for(int i = 0; i < mProxy->rowCount(); ++i){ QModelIndex nameIdx = mProxy->index(i, 0); - if(re.indexIn(nameIdx.data().toString()) != -1){ + if(re.match(nameIdx.data().toString()).hasMatch()){ mFileView->selectionModel()->select(nameIdx, QItemSelectionModel::Select | QItemSelectionModel::Rows); } } @@ -762,9 +738,3 @@ void FSWidget::calculateSelectionChanged(){ } emit selectionChanged(count, size, duration); } - -void FSWidget::playerStateChanged(QMediaPlayer::State s){ - if(s == QMediaPlayer::StoppedState){ - mVideoViewer->hide(); - } -} -- cgit v1.2.3-70-g09d2