X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2FDialog_MainWindow.cpp;h=27469bedf67ddd476c48d4ab19f40bfb62042953;hb=3073ceb312f3cc290655d20c2c82791592205985;hp=67a8c1d96565bc1a579fa8006aaaedb413a51f62;hpb=d7006ccefa50984698a10aa28728420e356f61fe;p=lamexp%2FLameXP.git diff --git a/src/Dialog_MainWindow.cpp b/src/Dialog_MainWindow.cpp index 67a8c1d9..27469bed 100644 --- a/src/Dialog_MainWindow.cpp +++ b/src/Dialog_MainWindow.cpp @@ -1,12 +1,12 @@ /////////////////////////////////////////////////////////////////////////////// // LameXP - Audio Encoder Front-End -// Copyright (C) 2004-2017 LoRd_MuldeR +// Copyright (C) 2004-2020 LoRd_MuldeR // // This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by +// it under the terms of the GNU GENERAL PUBLIC LICENSE as published by // the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version, but always including the *additional* -// restrictions defined in the "License.txt" file. +// (at your option) any later version; always including the non-optional +// LAMEXP GNU GENERAL PUBLIC LICENSE ADDENDUM. See "License.txt" file! // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -856,19 +856,19 @@ void MainWindow::addFiles(const QStringList &files) if(analyzer->filesDenied()) { - QMessageBox::warning(this, tr("Access Denied"), QString("%1
%2").arg(NOBR(tr("%n file(s) have been rejected, because read access was not granted!", "", analyzer->filesDenied())), NOBR(tr("This usually means the file is locked by another process.")))); + QMessageBox::warning(this, tr("Access Denied"), NOBREAK(QString("%1
%2").arg(tr("%n file(s) have been rejected, because read access was not granted!", "", analyzer->filesDenied()), tr("This usually means the file is locked by another process.")))); } if(analyzer->filesDummyCDDA()) { - QMessageBox::warning(this, tr("CDDA Files"), QString("%1

%2
%3").arg(NOBR(tr("%n file(s) have been rejected, because they are dummy CDDA files!", "", analyzer->filesDummyCDDA())), NOBR(tr("Sorry, LameXP cannot extract audio tracks from an Audio-CD at present.")), NOBR(tr("We recommend using %1 for that purpose.").arg("Exact Audio Copy")))); + QMessageBox::warning(this, tr("CDDA Files"), NOBREAK(QString("%1

%2
%3").arg(tr("%n file(s) have been rejected, because they are dummy CDDA files!", "", analyzer->filesDummyCDDA()), tr("Sorry, LameXP cannot extract audio tracks from an Audio-CD at present."), tr("We recommend using %1 for that purpose.").arg("Exact Audio Copy")))); } if(analyzer->filesCueSheet()) { - QMessageBox::warning(this, tr("Cue Sheet"), QString("%1
%2").arg(NOBR(tr("%n file(s) have been rejected, because they appear to be Cue Sheet images!", "",analyzer->filesCueSheet())), NOBR(tr("Please use LameXP's Cue Sheet wizard for importing Cue Sheet files.")))); + QMessageBox::warning(this, tr("Cue Sheet"), NOBREAK(QString("%1
%2").arg(tr("%n file(s) have been rejected, because they appear to be Cue Sheet images!", "",analyzer->filesCueSheet()), tr("Please use LameXP's Cue Sheet wizard for importing Cue Sheet files.")))); } if(analyzer->filesRejected()) { - QMessageBox::warning(this, tr("Files Rejected"), QString("%1
%2").arg(NOBR(tr("%n file(s) have been rejected, because the file format could not be recognized!", "", analyzer->filesRejected())), NOBR(tr("This usually means the file is damaged or the file format is not supported.")))); + QMessageBox::warning(this, tr("Files Rejected"), NOBREAK(QString("%1
%2").arg(tr("%n file(s) have been rejected, because the file format could not be recognized!", "", analyzer->filesRejected()), tr("This usually means the file is damaged or the file format is not supported.")))); } m_banner->close(); @@ -937,8 +937,9 @@ void MainWindow::addFolder(const QString &path, bool recursive, bool delayed, QS /* * Check for updates */ -bool MainWindow::checkForUpdates(void) +bool MainWindow::checkForUpdates(bool &haveNewVersion) { + haveNewVersion = false; bool bReadyToInstall = false; UpdateDialog *updateDialog = new UpdateDialog(m_settings, this); @@ -948,6 +949,7 @@ bool MainWindow::checkForUpdates(void) { SHOW_CORNER_WIDGET(false); m_settings->autoUpdateLastCheck(QDate::currentDate().toString(Qt::ISODate)); + haveNewVersion = updateDialog->haveNewVersion(); bReadyToInstall = updateDialog->updateReadyToInstall(); } @@ -1469,7 +1471,7 @@ void MainWindow::windowShown(void) { m_settings->licenseAccepted(1); m_settings->syncNow(); - MUtils::Sound::play_sound("woohoo", false); + PLAY_SOUND_OPTIONAL("woohoo", false); if (lamexp_version_demo()) { showAnnounceBox(); @@ -1492,7 +1494,7 @@ void MainWindow::windowShown(void) if(m_settings->licenseAccepted() <= 0) { QApplication::processEvents(); - MUtils::Sound::play_sound("whammy", false); + PLAY_SOUND_OPTIONAL("whammy", false); QMessageBox::critical(this, tr("License Declined"), tr("You have declined the license. Consequently the application will exit now!"), tr("Goodbye!")); QFileInfo uninstallerInfo = QFileInfo(QString("%1/Uninstall.exe").arg(QApplication::applicationDirPath())); if(uninstallerInfo.exists()) @@ -1513,14 +1515,22 @@ void MainWindow::windowShown(void) { if(MUtils::OS::current_date() >= lamexp_version_expires()) { - qWarning("Binary has expired !!!"); - MUtils::Sound::play_sound("whammy", false); - if(QMessageBox::warning(this, tr("LameXP - Expired"), QString("%1
%2").arg(NOBR(tr("This demo (pre-release) version of LameXP has expired at %1.").arg(lamexp_version_expires().toString(Qt::ISODate))), NOBR(tr("LameXP is free software and release versions won't expire."))), tr("Check for Updates"), tr("Exit Program")) == 0) + qWarning("Binary expired !!!"); + PLAY_SOUND_OPTIONAL("whammy", false); + bool haveNewVersion = true; + if(QMessageBox::warning(this, tr("LameXP - Expired"), NOBREAK(QString("%1
%2").arg(tr("This demo (pre-release) version of LameXP has expired at %1.").arg(lamexp_version_expires().toString(Qt::ISODate)), tr("LameXP is free software and release versions won't expire."))), tr("Check for Updates"), tr("Exit Program")) == 0) { - checkForUpdates(); + if (checkForUpdates(haveNewVersion)) + { + QApplication::quit(); + return; + } + } + if(haveNewVersion) + { + QApplication::quit(); + return; } - QApplication::quit(); - return; } } @@ -1528,9 +1538,9 @@ void MainWindow::windowShown(void) if(m_settings->slowStartup() && m_settings->antivirNotificationsEnabled()) { QString message; - message += NOBR(tr("It seems that a bogus anti-virus software is slowing down the startup of LameXP.")).append("
"); - message += NOBR(tr("Please refer to the %1 document for details and solutions!")).arg(LINK_EX(QString("%1/Manual.html#performance-issues").arg(g_documents_base_url), tr("Manual"))).append("
"); - if(QMessageBox::warning(this, tr("Slow Startup"), message, tr("Discard"), tr("Don't Show Again")) == 1) + message += tr("It seems that a bogus anti-virus software is slowing down the startup of LameXP.").append("
"); + message += tr("Please refer to the %1 document for details and solutions!").arg(LINK_EX(QString("%1/Manual.html#performance-issues").arg(g_documents_base_url), tr("Manual"))).append("
"); + if(QMessageBox::warning(this, tr("Slow Startup"), NOBREAK(message), tr("Discard"), tr("Don't Show Again")) == 1) { m_settings->antivirNotificationsEnabled(false); ui->actionDisableSlowStartupNotifications->setChecked(!m_settings->antivirNotificationsEnabled()); @@ -1542,11 +1552,12 @@ void MainWindow::windowShown(void) { qWarning("Binary is more than a year old, time to update!"); SHOW_CORNER_WIDGET(true); - int ret = QMessageBox::warning(this, tr("Urgent Update"), NOBR(tr("Your version of LameXP is more than a year old. Time for an update!")), tr("Check for Updates"), tr("Exit Program"), tr("Ignore")); + int ret = QMessageBox::warning(this, tr("Urgent Update"), NOBREAK(tr("Your version of LameXP is more than a year old. Time for an update!")), tr("Check for Updates"), tr("Exit Program"), tr("Ignore")); switch(ret) { case 0: - if(checkForUpdates()) + bool haveNewVersion; + if(checkForUpdates(haveNewVersion)) { QApplication::quit(); return; @@ -1557,7 +1568,7 @@ void MainWindow::windowShown(void) return; default: QEventLoop loop; QTimer::singleShot(7000, &loop, SLOT(quit())); - MUtils::Sound::play_sound("waiting", true); + PLAY_SOUND_OPTIONAL("waiting", true); showBanner(tr("Skipping update check this time, please be patient..."), &loop); break; } @@ -1570,9 +1581,10 @@ void MainWindow::windowShown(void) SHOW_CORNER_WIDGET(true); if(m_settings->autoUpdateEnabled()) { - if(QMessageBox::information(this, tr("Update Reminder"), NOBR(lastUpdateCheck.isValid() ? tr("Your last update check was more than 14 days ago. Check for updates now?") : tr("Your did not check for LameXP updates yet. Check for updates now?")), tr("Check for Updates"), tr("Postpone")) == 0) + if(QMessageBox::information(this, tr("Update Reminder"), NOBREAK(lastUpdateCheck.isValid() ? tr("Your last update check was more than 14 days ago. Check for updates now?") : tr("Your did not check for LameXP updates yet. Check for updates now?")), tr("Check for Updates"), tr("Postpone")) == 0) { - if(checkForUpdates()) + bool haveNewVersion; + if(checkForUpdates(haveNewVersion)) { QApplication::quit(); return; @@ -1588,14 +1600,14 @@ void MainWindow::windowShown(void) QString appPath = QDir(QCoreApplication::applicationDirPath()).canonicalPath(); if(appPath.isEmpty()) appPath = QCoreApplication::applicationDirPath(); QString messageText; - messageText += NOBR(tr("The Nero AAC encoder could not be found. AAC encoding support will be disabled.")).append("
"); - messageText += NOBR(tr("Please put 'neroAacEnc.exe', 'neroAacDec.exe' and 'neroAacTag.exe' into the LameXP directory!")).append("

"); - messageText += QString("").append(NOBR(tr("Your LameXP install directory is located here:"))).append("
"); - messageText += QString("%1

").arg(FSLINK(QDir::toNativeSeparators(appPath))); - messageText += QString("").append(NOBR(tr("You can download the Nero AAC encoder for free from this website:"))).append("
"); - messageText += QString("").append(LINK(AboutDialog::neroAacUrl)).append("

"); - messageText += QString("").append(NOBR(tr("Note: Nero AAC encoder version %1 or newer is required to enable AAC encoding support!").arg(lamexp_version2string("v?.?.?.?", lamexp_toolver_neroaac(), "n/a")))).append("
"); - if(QMessageBox::information(this, tr("AAC Support Disabled"), messageText, tr("Discard"), tr("Don't Show Again")) == 1) + messageText += tr("The Nero AAC encoder could not be found. AAC encoding support will be disabled.").append("
"); + messageText += tr("Please put 'neroAacEnc.exe', 'neroAacDec.exe' and 'neroAacTag.exe' into the LameXP directory!").append("

"); + messageText += QString("").append(tr("Your LameXP install directory is located here:")).append("
"); + messageText += QString("%1

").arg(FSLINK(QDir::toNativeSeparators(appPath))); + messageText += QString("").append(tr("You can download the Nero AAC encoder for free from this website:")).append("
"); + messageText += QString("").append(LINK(AboutDialog::neroAacUrl)).append("

"); + messageText += QString("").append(tr("Note: Nero AAC encoder version %1 or newer is required to enable AAC encoding support!").arg(lamexp_version2string("v?.?.?.?", lamexp_toolver_neroaac(), "n/a"))).append("
"); + if(QMessageBox::information(this, tr("AAC Support Disabled"), NOBREAK(messageText), tr("Discard"), tr("Don't Show Again")) == 1) { m_settings->neroAacNotificationsEnabled(false); ui->actionDisableNeroAacNotifications->setChecked(!m_settings->neroAacNotificationsEnabled()); @@ -1658,14 +1670,14 @@ void MainWindow::showAnnounceBox(void) { const unsigned int timeout = 8U; - const QString announceText = QString("%1

%2
%3
").arg + const QString announceText = QString("%1

%2
%3
").arg ( - NOBR("We are still looking for LameXP translators!"), - NOBR("If you are willing to translate LameXP to your language or to complete an existing translation, please refer to:"), + "We are still looking for LameXP translators!", + "If you are willing to translate LameXP to your language or to complete an existing translation, please refer to:", LINK("http://lamexp.sourceforge.net/doc/Translate.html") ); - QMessageBox *announceBox = new QMessageBox(QMessageBox::Warning, "We want you!", announceText, QMessageBox::NoButton, this); + QMessageBox *announceBox = new QMessageBox(QMessageBox::Warning, "We want you!", NOBREAK(announceText), QMessageBox::NoButton, this); announceBox->setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint); announceBox->setIconPixmap(QIcon(":/images/Announcement.png").pixmap(64,79)); @@ -1726,7 +1738,7 @@ void MainWindow::encodeButtonClicked(void) if(m_fileListModel->rowCount() < 1) { - QMessageBox::warning(this, tr("LameXP"), NOBR(tr("You must add at least one file to the list before proceeding!"))); + QMessageBox::warning(this, tr("LameXP"), NOBREAK(tr("You must add at least one file to the list before proceeding!"))); ui->tabWidget->setCurrentIndex(0); return; } @@ -1734,7 +1746,7 @@ void MainWindow::encodeButtonClicked(void) QString tempFolder = m_settings->customTempPathEnabled() ? m_settings->customTempPath() : MUtils::temp_folder(); if(!QFileInfo(tempFolder).exists() || !QFileInfo(tempFolder).isDir()) { - if(QMessageBox::warning(this, tr("Not Found"), QString("%1
%2").arg(NOBR(tr("Your currently selected TEMP folder does not exist anymore:")), NOBR(QDir::toNativeSeparators(tempFolder))), tr("Restore Default"), tr("Cancel")) == 0) + if(QMessageBox::warning(this, tr("Not Found"), NOBREAK(QString("%1
%2").arg(tr("Your currently selected TEMP folder does not exist anymore:"), QDir::toNativeSeparators(tempFolder))), tr("Restore Default"), tr("Cancel")) == 0) { SET_CHECKBOX_STATE(ui->checkBoxUseSystemTempFolder, (!m_settings->customTempPathEnabledDefault())); } @@ -1751,20 +1763,20 @@ void MainWindow::encodeButtonClicked(void) PLAY_SOUND_OPTIONAL("whammy", false); QString lowDiskspaceMsg = QString("%1
%2

%3
%4
").arg ( - NOBR(tr("There are less than %1 GB of free diskspace available on your system's TEMP folder.").arg(QString::number(minimumFreeDiskspaceMultiplier))), - NOBR(tr("It is highly recommend to free up more diskspace before proceeding with the encode!")), - NOBR(tr("Your TEMP folder is located at:")), - QString("%1").arg(FSLINK(tempFolderParts.join("\\"))) + tr("There are less than %1 GB of free diskspace available on your system's TEMP folder.").arg(QString::number(minimumFreeDiskspaceMultiplier)), + tr("It is highly recommend to free up more diskspace before proceeding with the encode!"), + tr("Your TEMP folder is located at:"), + QString("%1").arg(FSLINK(tempFolderParts.join("\\"))) ); - switch(QMessageBox::warning(this, tr("Low Diskspace Warning"), lowDiskspaceMsg, tr("Abort Encoding Process"), tr("Clean Disk Now"), tr("Ignore"))) + switch(QMessageBox::warning(this, tr("Low Diskspace Warning"), NOBREAK(lowDiskspaceMsg), tr("Abort Encoding Process"), tr("Clean Disk Now"), tr("Ignore"))) { case 1: - QProcess::startDetached(QString("%1/cleanmgr.exe").arg(MUtils::OS::known_folder(MUtils::OS::FOLDER_SYSTEMFOLDER)), QStringList() << "/D" << tempFolderParts.first()); + QProcess::startDetached(QString("%1/cleanmgr.exe").arg(MUtils::OS::known_folder(MUtils::OS::FOLDER_SYSTEM_DEF)), QStringList() << "/D" << tempFolderParts.first()); case 0: return; break; default: - QMessageBox::warning(this, tr("Low Diskspace"), NOBR(tr("You are proceeding with low diskspace. Problems might occur!"))); + QMessageBox::warning(this, tr("Low Diskspace"), NOBREAK(tr("You are proceeding with low diskspace. Problems might occur!"))); break; } } @@ -1793,7 +1805,7 @@ void MainWindow::encodeButtonClicked(void) QFile writeTest(QString("%1/~%2.txt").arg(m_settings->outputDir(), MUtils::next_rand_str())); if(!(writeTest.open(QIODevice::ReadWrite) && (writeTest.write(writeTestBuffer) == strlen(writeTestBuffer)))) { - QMessageBox::warning(this, tr("LameXP"), QString("%1
%2

%3").arg(tr("Cannot write to the selected output directory."), m_settings->outputDir(), tr("Please choose a different directory!"))); + QMessageBox::warning(this, tr("LameXP"), NOBREAK(QString("%1
%2

%3").arg(tr("Cannot write to the selected output directory."), m_settings->outputDir(), tr("Please choose a different directory!")))); ui->tabWidget->setCurrentIndex(1); return; } @@ -2072,9 +2084,9 @@ void MainWindow::disableUpdateReminderActionTriggered(bool checked) { if(checked) { - if(0 == QMessageBox::question(this, tr("Disable Update Reminder"), NOBR(tr("Do you really want to disable the update reminder?")), tr("Yes"), tr("No"), QString(), 1)) + if(0 == QMessageBox::question(this, tr("Disable Update Reminder"), NOBREAK(tr("Do you really want to disable the update reminder?")), tr("Yes"), tr("No"), QString(), 1)) { - QMessageBox::information(this, tr("Update Reminder"), QString("%1
%2").arg(NOBR(tr("The update reminder has been disabled.")), NOBR(tr("Please remember to check for updates at regular intervals!")))); + QMessageBox::information(this, tr("Update Reminder"), NOBREAK(QString("%1
%2").arg(tr("The update reminder has been disabled."), tr("Please remember to check for updates at regular intervals!")))); m_settings->autoUpdateEnabled(false); } else @@ -2084,7 +2096,7 @@ void MainWindow::disableUpdateReminderActionTriggered(bool checked) } else { - QMessageBox::information(this, tr("Update Reminder"), NOBR(tr("The update reminder has been re-enabled."))); + QMessageBox::information(this, tr("Update Reminder"), NOBREAK(tr("The update reminder has been re-enabled."))); m_settings->autoUpdateEnabled(true); } @@ -2098,9 +2110,9 @@ void MainWindow::disableSoundsActionTriggered(bool checked) { if(checked) { - if(0 == QMessageBox::question(this, tr("Disable Sound Effects"), NOBR(tr("Do you really want to disable all sound effects?")), tr("Yes"), tr("No"), QString(), 1)) + if(0 == QMessageBox::question(this, tr("Disable Sound Effects"), NOBREAK(tr("Do you really want to disable all sound effects?")), tr("Yes"), tr("No"), QString(), 1)) { - QMessageBox::information(this, tr("Sound Effects"), NOBR(tr("All sound effects have been disabled."))); + QMessageBox::information(this, tr("Sound Effects"), NOBREAK(tr("All sound effects have been disabled."))); m_settings->soundsEnabled(false); } else @@ -2110,7 +2122,7 @@ void MainWindow::disableSoundsActionTriggered(bool checked) } else { - QMessageBox::information(this, tr("Sound Effects"), NOBR(tr("The sound effects have been re-enabled."))); + QMessageBox::information(this, tr("Sound Effects"), NOBREAK(tr("The sound effects have been re-enabled."))); m_settings->soundsEnabled(true); } @@ -2124,9 +2136,9 @@ void MainWindow::disableNeroAacNotificationsActionTriggered(bool checked) { if(checked) { - if(0 == QMessageBox::question(this, tr("Nero AAC Notifications"), NOBR(tr("Do you really want to disable all Nero AAC Encoder notifications?")), tr("Yes"), tr("No"), QString(), 1)) + if(0 == QMessageBox::question(this, tr("Nero AAC Notifications"), NOBREAK(tr("Do you really want to disable all Nero AAC Encoder notifications?")), tr("Yes"), tr("No"), QString(), 1)) { - QMessageBox::information(this, tr("Nero AAC Notifications"), NOBR(tr("All Nero AAC Encoder notifications have been disabled."))); + QMessageBox::information(this, tr("Nero AAC Notifications"), NOBREAK(tr("All Nero AAC Encoder notifications have been disabled."))); m_settings->neroAacNotificationsEnabled(false); } else @@ -2136,8 +2148,8 @@ void MainWindow::disableNeroAacNotificationsActionTriggered(bool checked) } else { - QMessageBox::information(this, tr("Nero AAC Notifications"), NOBR(tr("The Nero AAC Encoder notifications have been re-enabled."))); - m_settings->neroAacNotificationsEnabled(true); + QMessageBox::information(this, tr("Nero AAC Notifications"), NOBREAK(tr("The Nero AAC Encoder notifications have been re-enabled."))); + m_settings->neroAacNotificationsEnabled(true); } ui->actionDisableNeroAacNotifications->setChecked(!m_settings->neroAacNotificationsEnabled()); @@ -2150,9 +2162,9 @@ void MainWindow::disableSlowStartupNotificationsActionTriggered(bool checked) { if(checked) { - if(0 == QMessageBox::question(this, tr("Slow Startup Notifications"), NOBR(tr("Do you really want to disable the slow startup notifications?")), tr("Yes"), tr("No"), QString(), 1)) + if(0 == QMessageBox::question(this, tr("Slow Startup Notifications"), NOBREAK(tr("Do you really want to disable the slow startup notifications?")), tr("Yes"), tr("No"), QString(), 1)) { - QMessageBox::information(this, tr("Slow Startup Notifications"), NOBR(tr("The slow startup notifications have been disabled."))); + QMessageBox::information(this, tr("Slow Startup Notifications"), NOBREAK(tr("The slow startup notifications have been disabled."))); m_settings->antivirNotificationsEnabled(false); } else @@ -2162,7 +2174,7 @@ void MainWindow::disableSlowStartupNotificationsActionTriggered(bool checked) } else { - QMessageBox::information(this, tr("Slow Startup Notifications"), NOBR(tr("The slow startup notifications have been re-enabled."))); + QMessageBox::information(this, tr("Slow Startup Notifications"), NOBREAK(tr("The slow startup notifications have been re-enabled."))); m_settings->antivirNotificationsEnabled(true); } @@ -2243,9 +2255,9 @@ void MainWindow::checkForBetaUpdatesActionTriggered(bool checked) if(checked) { - if(0 == QMessageBox::question(this, tr("Beta Updates"), NOBR(tr("Do you really want LameXP to check for Beta (pre-release) updates?")), tr("Yes"), tr("No"), QString(), 1)) + if(0 == QMessageBox::question(this, tr("Beta Updates"), NOBREAK(tr("Do you really want LameXP to check for Beta (pre-release) updates?")), tr("Yes"), tr("No"), QString(), 1)) { - if(0 == QMessageBox::information(this, tr("Beta Updates"), NOBR(tr("LameXP will check for Beta (pre-release) updates from now on.")), tr("Check Now"), tr("Discard"))) + if(0 == QMessageBox::information(this, tr("Beta Updates"), NOBREAK(tr("LameXP will check for Beta (pre-release) updates from now on.")), tr("Check Now"), tr("Discard"))) { checkUpdatesNow = true; } @@ -2258,7 +2270,7 @@ void MainWindow::checkForBetaUpdatesActionTriggered(bool checked) } else { - QMessageBox::information(this, tr("Beta Updates"), NOBR(tr("LameXP will not check for Beta (pre-release) updates from now on."))); + QMessageBox::information(this, tr("Beta Updates"), NOBREAK(tr("LameXP will not check for Beta (pre-release) updates from now on."))); m_settings->autoUpdateCheckBeta(false); } @@ -2266,7 +2278,8 @@ void MainWindow::checkForBetaUpdatesActionTriggered(bool checked) if(checkUpdatesNow) { - if(checkForUpdates()) + bool haveNewVersion; + if(checkForUpdates(haveNewVersion)) { QApplication::quit(); } @@ -2280,9 +2293,9 @@ void MainWindow::hibernateComputerActionTriggered(bool checked) { if(checked) { - if(0 == QMessageBox::question(this, tr("Hibernate Computer"), NOBR(tr("Do you really want the computer to be hibernated on shutdown?")), tr("Yes"), tr("No"), QString(), 1)) + if(0 == QMessageBox::question(this, tr("Hibernate Computer"), NOBREAK(tr("Do you really want the computer to be hibernated on shutdown?")), tr("Yes"), tr("No"), QString(), 1)) { - QMessageBox::information(this, tr("Hibernate Computer"), NOBR(tr("LameXP will hibernate the computer on shutdown from now on."))); + QMessageBox::information(this, tr("Hibernate Computer"), NOBREAK(tr("LameXP will hibernate the computer on shutdown from now on."))); m_settings->hibernateComputer(true); } else @@ -2292,7 +2305,7 @@ void MainWindow::hibernateComputerActionTriggered(bool checked) } else { - QMessageBox::information(this, tr("Hibernate Computer"), NOBR(tr("LameXP will not hibernate the computer on shutdown from now on."))); + QMessageBox::information(this, tr("Hibernate Computer"), NOBREAK(tr("LameXP will not hibernate the computer on shutdown from now on."))); m_settings->hibernateComputer(false); } @@ -2306,10 +2319,10 @@ void MainWindow::disableShellIntegrationActionTriggered(bool checked) { if(checked) { - if(0 == QMessageBox::question(this, tr("Shell Integration"), NOBR(tr("Do you really want to disable the LameXP shell integration?")), tr("Yes"), tr("No"), QString(), 1)) + if(0 == QMessageBox::question(this, tr("Shell Integration"), NOBREAK(tr("Do you really want to disable the LameXP shell integration?")), tr("Yes"), tr("No"), QString(), 1)) { ShellIntegration::remove(); - QMessageBox::information(this, tr("Shell Integration"), NOBR(tr("The LameXP shell integration has been disabled."))); + QMessageBox::information(this, tr("Shell Integration"), NOBREAK(tr("The LameXP shell integration has been disabled."))); m_settings->shellIntegrationEnabled(false); } else @@ -2320,7 +2333,7 @@ void MainWindow::disableShellIntegrationActionTriggered(bool checked) else { ShellIntegration::install(); - QMessageBox::information(this, tr("Shell Integration"), NOBR(tr("The LameXP shell integration has been re-enabled."))); + QMessageBox::information(this, tr("Shell Integration"), NOBREAK(tr("The LameXP shell integration has been re-enabled."))); m_settings->shellIntegrationEnabled(true); } @@ -2369,7 +2382,8 @@ void MainWindow::checkUpdatesActionActivated(void) ABORT_IF_BUSY; WidgetHideHelper hiderHelper(m_dropBox.data()); - if(checkForUpdates()) + bool haveNewVersion; + if(checkForUpdates(haveNewVersion)) { QApplication::quit(); } @@ -2642,17 +2656,10 @@ void MainWindow::findFileContextActionTriggered(void) QModelIndex index = ui->sourceFileView->currentIndex(); if(index.isValid()) { - QString systemRootPath; - - QDir systemRoot(MUtils::OS::known_folder(MUtils::OS::FOLDER_SYSTEMFOLDER)); - if(systemRoot.exists() && systemRoot.cdUp()) - { - systemRootPath = systemRoot.canonicalPath(); - } - - if(!systemRootPath.isEmpty()) + const QString systemToolsPath = MUtils::OS::known_folder(MUtils::OS::FOLDER_SYSROOT); + if(!systemToolsPath.isEmpty()) { - QFileInfo explorer(QString("%1/explorer.exe").arg(systemRootPath)); + QFileInfo explorer(QString("%1/explorer.exe").arg(systemToolsPath)); if(explorer.exists() && explorer.isFile()) { QProcess::execute(explorer.canonicalFilePath(), QStringList() << "/select," << QDir::toNativeSeparators(m_fileListModel->getFile(index).filePath())); @@ -2661,7 +2668,7 @@ void MainWindow::findFileContextActionTriggered(void) } else { - qWarning("SystemRoot directory could not be detected!"); + qWarning("System tools directory could not be detected!"); } } } @@ -2791,16 +2798,16 @@ void MainWindow::exportCsvContextActionTriggered(void) switch(m_fileListModel->exportToCsv(selectedCsvFile)) { case FileListModel::CsvError_NoTags: - QMessageBox::critical(this, tr("CSV Export"), NOBR(tr("Sorry, there are no meta tags that can be exported!"))); + QMessageBox::critical(this, tr("CSV Export"), NOBREAK(tr("Sorry, there are no meta tags that can be exported!"))); break; case FileListModel::CsvError_FileOpen: - QMessageBox::critical(this, tr("CSV Export"), NOBR(tr("Sorry, failed to open CSV file for writing!"))); + QMessageBox::critical(this, tr("CSV Export"), NOBREAK(tr("Sorry, failed to open CSV file for writing!"))); break; case FileListModel::CsvError_FileWrite: - QMessageBox::critical(this, tr("CSV Export"), NOBR(tr("Sorry, failed to write to the CSV file!"))); + QMessageBox::critical(this, tr("CSV Export"), NOBREAK(tr("Sorry, failed to write to the CSV file!"))); break; case FileListModel::CsvError_OK: - QMessageBox::information(this, tr("CSV Export"), NOBR(tr("The CSV files was created successfully!"))); + QMessageBox::information(this, tr("CSV Export"), NOBREAK(tr("The CSV files was created successfully!"))); break; default: qWarning("exportToCsv: Unknown return code!"); @@ -2840,19 +2847,19 @@ void MainWindow::importCsvContextActionTriggered(void) switch(m_fileListModel->importFromCsv(this, selectedCsvFile)) { case FileListModel::CsvError_FileOpen: - QMessageBox::critical(this, tr("CSV Import"), NOBR(tr("Sorry, failed to open CSV file for reading!"))); + QMessageBox::critical(this, tr("CSV Import"), NOBREAK(tr("Sorry, failed to open CSV file for reading!"))); break; case FileListModel::CsvError_FileRead: - QMessageBox::critical(this, tr("CSV Import"), NOBR(tr("Sorry, failed to read from the CSV file!"))); + QMessageBox::critical(this, tr("CSV Import"), NOBREAK(tr("Sorry, failed to read from the CSV file!"))); break; case FileListModel::CsvError_NoTags: - QMessageBox::critical(this, tr("CSV Import"), NOBR(tr("Sorry, the CSV file does not contain any known fields!"))); + QMessageBox::critical(this, tr("CSV Import"), NOBREAK(tr("Sorry, the CSV file does not contain any known fields!"))); break; case FileListModel::CsvError_Incomplete: - QMessageBox::warning(this, tr("CSV Import"), NOBR(tr("CSV file is incomplete. Not all files were updated!"))); + QMessageBox::warning(this, tr("CSV Import"), NOBREAK(tr("CSV file is incomplete. Not all files were updated!"))); break; case FileListModel::CsvError_OK: - QMessageBox::information(this, tr("CSV Import"), NOBR(tr("The CSV files was imported successfully!"))); + QMessageBox::information(this, tr("CSV Import"), NOBREAK(tr("The CSV files was imported successfully!"))); break; case FileListModel::CsvError_Aborted: /* User aborted, ignore! */ @@ -2922,7 +2929,7 @@ void MainWindow::gotoDesktopButtonClicked(void) return; } - QString desktopPath = QDesktopServices::storageLocation(QDesktopServices::DesktopLocation); + const QString desktopPath = MUtils::OS::known_folder(MUtils::OS::FOLDER_DESKTOP_USER); if(!desktopPath.isEmpty() && QDir(desktopPath).exists()) { @@ -2947,8 +2954,8 @@ void MainWindow::gotoHomeFolderButtonClicked(void) return; } - QString homePath = QDesktopServices::storageLocation(QDesktopServices::HomeLocation); - + const QString homePath = MUtils::OS::known_folder(MUtils::OS::FOLDER_PROFILE_USER); + if(!homePath.isEmpty() && QDir(homePath).exists()) { ui->outputFolderView->setCurrentIndex(m_fileSystemModel->index(homePath)); @@ -2972,7 +2979,7 @@ void MainWindow::gotoMusicFolderButtonClicked(void) return; } - QString musicPath = QDesktopServices::storageLocation(QDesktopServices::MusicLocation); + const QString musicPath = MUtils::OS::known_folder(MUtils::OS::FOLDER_MUSIC_USER); if(!musicPath.isEmpty() && QDir(musicPath).exists()) { @@ -3109,7 +3116,7 @@ void MainWindow::makeFolderButtonClicked(void) } else { - QMessageBox::warning(this, tr("Failed to create folder"), QString("%1
%2

%3").arg(tr("The new folder could not be created:"), basePath.absoluteFilePath(newFolder), tr("Drive is read-only or insufficient access rights!"))); + QMessageBox::warning(this, tr("Failed to create folder"), NOBREAK(QString("%1
%2

%3").arg(tr("The new folder could not be created:"), basePath.absoluteFilePath(newFolder), tr("Drive is read-only or insufficient access rights!")))); } } break;