From 693047025b631656c838636c85d26c2b63cbd05b Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Mon, 1 Jul 2024 22:37:08 -0400 Subject: [PATCH 01/17] Windows: Workaround for crashing with older Visual C++ runtimes --- dist/scripts/build.ps1 | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/dist/scripts/build.ps1 b/dist/scripts/build.ps1 index 400f13d8..4575d535 100755 --- a/dist/scripts/build.ps1 +++ b/dist/scripts/build.ps1 @@ -9,12 +9,13 @@ if ($IsWindows) { dist/scripts/vcvars.ps1 } -if ($env:buildArch -eq 'Universal') { - qmake QMAKE_APPLE_DEVICE_ARCHS="x86_64 arm64" $args[0] PREFIX=$Prefix DEFINES+="$env:nightlyDefines" -} else { - qmake $args[0] PREFIX=$Prefix DEFINES+="$env:nightlyDefines" +if ($IsMacOS -and $env:buildArch -eq 'Universal') { + $argDeviceArchs = 'QMAKE_APPLE_DEVICE_ARCHS=x86_64 arm64' +} elseif ($IsWindows) { + # Workaround for https://developercommunity.visualstudio.com/t/10664660 + $argVcrMutexWorkaround = 'DEFINES+=_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR' } - +qmake $args[0] PREFIX=$Prefix DEFINES+="$env:nightlyDefines" $argVcrMutexWorkaround $argDeviceArchs if ($IsWindows) { nmake From 89b5bc38f87a1955336964d993c267e729c412b8 Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Fri, 5 Jul 2024 18:45:39 -0400 Subject: [PATCH 02/17] Windows: Limit argument parsing workaround to affected Qt version --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 718b13d8..62374de1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,7 +16,7 @@ int main(int argc, char *argv[]) parser.addHelpOption(); parser.addVersionOption(); parser.addPositionalArgument(QObject::tr("file"), QObject::tr("The file to open.")); -#if defined Q_OS_WIN && WIN32_LOADED +#if defined Q_OS_WIN && WIN32_LOADED && QT_VERSION < QT_VERSION_CHECK(6, 7, 2) // Workaround for unicode characters getting mangled in certain cases. To support unicode arguments on // Windows, QCoreApplication normally ignores argv and gets them from the Windows API instead. But this // only happens if it thinks argv hasn't been modified prior to being passed into QCoreApplication's From 18ed9194ec58bad11d399d70cef600d4dbb1092a Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Fri, 5 Jul 2024 18:54:33 -0400 Subject: [PATCH 03/17] macOS: Make sure icons are hidden in parentless menubar Starting Qt 6.7, QIcon::fromTheme returns icons even on macOS. This code already attempted to hide them, but did so too late to affect the parentless menubar. --- src/qvapplication.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/qvapplication.cpp b/src/qvapplication.cpp index db3c7eb0..1767e2e7 100644 --- a/src/qvapplication.cpp +++ b/src/qvapplication.cpp @@ -32,6 +32,15 @@ QVApplication::QVApplication(int &argc, char **argv) : QApplication(argc, argv) checkUpdates(true); } + // Block any erroneous icons from showing up on mac and windows + // (this is overridden in some cases) +#if defined Q_OS_MACOS || defined Q_OS_WIN + setAttribute(Qt::AA_DontShowIconsInMenus); +#endif + // Adwaita Qt styles should hide icons for a more consistent look + if (style()->objectName() == "adwaita-dark" || style()->objectName() == "adwaita") + setAttribute(Qt::AA_DontShowIconsInMenus); + // Setup macOS dock menu dockMenu = new QMenu(); connect(dockMenu, &QMenu::triggered, this, [](QAction *triggeredAction) { @@ -60,15 +69,6 @@ QVApplication::QVApplication(int &argc, char **argv) : QApplication(argc, argv) setQuitOnLastWindowClosed(getSettingsManager().getBoolean("quitonlastwindow")); #endif - // Block any erroneous icons from showing up on mac and windows - // (this is overridden in some cases) -#if defined Q_OS_MACOS || defined Q_OS_WIN - setAttribute(Qt::AA_DontShowIconsInMenus); -#endif - // Adwaita Qt styles should hide icons for a more consistent look - if (style()->objectName() == "adwaita-dark" || style()->objectName() == "adwaita") - setAttribute(Qt::AA_DontShowIconsInMenus); - hideIncompatibleActions(); } From 2f852f42300ed38f3b64226c051b9108571b4882 Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Fri, 5 Jul 2024 18:56:09 -0400 Subject: [PATCH 04/17] macOS: Fix full size content view not working as expected with Qt 6.8 --- src/mainwindow.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index c8b440c3..c87f86a2 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -41,6 +41,12 @@ MainWindow::MainWindow(QWidget *parent) : setAttribute(Qt::WA_DeleteOnClose); setAttribute(Qt::WA_OpaquePaintEvent); +#if defined COCOA_LOADED && QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) + // Allow the titlebar to overlap widgets with full size content view + setAttribute(Qt::WA_ContentsMarginsRespectsSafeArea, false); + centralWidget()->setAttribute(Qt::WA_ContentsMarginsRespectsSafeArea, false); +#endif + // Initialize variables justLaunchedWithImage = false; storedWindowState = Qt::WindowNoState; From 573dd143480c1c98966208dc42cc3b11332e69b4 Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Fri, 5 Jul 2024 22:07:36 -0400 Subject: [PATCH 05/17] When loading files, take advantage of in-progress preloads if possible --- src/qvimagecore.cpp | 19 ++++++++++++++++++- src/qvimagecore.h | 2 ++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/qvimagecore.cpp b/src/qvimagecore.cpp index 74454930..6b2b80e9 100644 --- a/src/qvimagecore.cpp +++ b/src/qvimagecore.cpp @@ -113,6 +113,11 @@ void QVImageCore::loadFile(const QString &fileName, bool isReloading) delete cachedData; loadPixmap(readData); } + //or see if the preloader is already working on it + else if (preloadFilesInProgress.contains(sanitaryFileName)) + { + waitingOnPreloadFile = sanitaryFileName; + } else { #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) @@ -512,9 +517,21 @@ void QVImageCore::requestCachingFile(const QString &filePath, const QColorSpace if (imgFile.size()/1024 > QVImageCore::pixmapCache.maxCost()/2) return; + preloadFilesInProgress.append(filePath); + auto *cacheFutureWatcher = new QFutureWatcher(); connect(cacheFutureWatcher, &QFutureWatcher::finished, this, [cacheFutureWatcher, this](){ - addToCache(cacheFutureWatcher->result()); + const ReadData readData = cacheFutureWatcher->result(); + if (waitingOnPreloadFile == readData.absoluteFilePath) + { + loadPixmap(readData); + waitingOnPreloadFile = QString(); + } + else + { + addToCache(readData); + } + preloadFilesInProgress.removeAll(readData.absoluteFilePath); cacheFutureWatcher->deleteLater(); }); diff --git a/src/qvimagecore.h b/src/qvimagecore.h index 4081ebe2..36c58ccb 100644 --- a/src/qvimagecore.h +++ b/src/qvimagecore.h @@ -137,6 +137,8 @@ class QVImageCore : public QObject unsigned randomSortSeed; QStringList lastFilesPreloaded; + QStringList preloadFilesInProgress; + QString waitingOnPreloadFile; int largestDimension; From 8e78b096597ba7f8901a31d61625e222386a0c5d Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Sat, 6 Jul 2024 19:07:44 -0400 Subject: [PATCH 06/17] Fix inability to load certain JPG files Allow the file extension to be used as a hint to give the JPG decoder priority over the RAW decoder --- src/qvimagecore.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/qvimagecore.cpp b/src/qvimagecore.cpp index 74454930..bec8473f 100644 --- a/src/qvimagecore.cpp +++ b/src/qvimagecore.cpp @@ -126,7 +126,6 @@ void QVImageCore::loadFile(const QString &fileName, bool isReloading) QVImageCore::ReadData QVImageCore::readFile(const QString &fileName, const QColorSpace &targetColorSpace) { QImageReader imageReader; - imageReader.setDecideFormatFromContent(true); imageReader.setAutoTransform(true); imageReader.setFileName(fileName); From a53ff98d1619c80d093f18105aeafef698e990f7 Mon Sep 17 00:00:00 2001 From: sh0u <47475540+sh0ou@users.noreply.github.com> Date: Thu, 8 Aug 2024 17:28:38 +0900 Subject: [PATCH 07/17] Update qview_ja.ts Add Japanese translation texts. --- i18n/qview_ja.ts | 288 ++++++++++++++++++++++++----------------------- 1 file changed, 146 insertions(+), 142 deletions(-) diff --git a/i18n/qview_ja.ts b/i18n/qview_ja.ts index 8d4fa95b..72e54a8a 100644 --- a/i18n/qview_ja.ts +++ b/i18n/qview_ja.ts @@ -48,7 +48,7 @@ Empty - + @@ -167,7 +167,7 @@ Ori&ginal Size - + 元のサイズ @@ -197,7 +197,7 @@ &First File - + 最初のファイルを表示 @@ -212,37 +212,37 @@ Las&t File - + 最後のファイルを表示 Save Frame &As... - + フレームを保存... Pa&use - 休止 + 一時停止 &Next Frame - + 次のフレーム &Decrease Speed - + 速度を下げる &Reset Speed - + 速度をリセット &Increase Speed - + 速度を上げる @@ -281,7 +281,7 @@ &Welcome - + ようこそ @@ -293,7 +293,7 @@ Other Application... Open with other program for unix non-mac - + 他のアプリケーション... @@ -305,7 +305,7 @@ Other... Open with other program for macos - + その他... @@ -323,7 +323,7 @@ Empty - + @@ -355,7 +355,7 @@ Open URL... - + URLから開く... @@ -438,12 +438,12 @@ No write permission or file is read-only. Res&ume - + 元に戻す Pause - 休止 + 一時停止 @@ -507,7 +507,7 @@ No write permission or file is read-only. Built with Qt %1 (%2)<br>Source code available under GPLv3 on <a style="color: #03A9F4; text-decoration:none;" href="https://github.com/jurplel/qView">GitHub</a><br>Icon glyph created by Guilhem from the Noun Project<br>Copyright © %3 jurplel and qView contributors - + Qtによって構築 %1 (%2)<br>ソースコードは<a style="color: #03A9F4; text-decoration:none;" href="https://github.com/jurplel/qView">GitHub</a> にてGPLv3で利用可能です<br>アイコンはNoun Project の Guilhem によって作成されました<br>Copyright © %3 jurplel and qView contributors @@ -568,7 +568,8 @@ No write permission or file is read-only. Error occurred opening "%3": %2 (Error %1) - + ファイルが開けません "%3": +%2 (Error %1) @@ -734,7 +735,7 @@ No write permission or file is read-only. Changes the amount of information displayed in the titlebar - + タイトルバーに表示されるテキストの量を調整します @@ -744,64 +745,64 @@ No write permission or file is read-only. &Basic - + 通常 &Minimal - + 最小 &Practical - + 拡張 &Verbose - + 最大 Control when the window should resize to fit the image's actual size - + 画像の実際のサイズに合わせてウィンドウのサイズをいつ変更するかを制御する Window matches image size: - + ウィンドウを画像サイズと合わせる: Never - + 無効 When launching - + 起動時 When opening images - + 画像を開いた時 Minimum size: - + 最小サイズ: Control the minimum size that the window should reach when matching the image's actual size - + 画像の実際のサイズに合わせる際に、ウィンドウが到達すべき最小サイズを制御する % of screen size - + % のスクリーンサイズ @@ -837,12 +838,12 @@ No write permission or file is read-only. Show titlebar text in fullscreen - + 全画面モードでもタイトルバーのテキストを表示する &Quit on last window closed - + 最後にウィンドウを閉じたときに終了する @@ -852,27 +853,27 @@ No write permission or file is read-only. Scaling: - + 拡大と縮小: Turn this off to see individual pixels - + 個々のピクセルを表示するにはこれをオフにします &Bilinear filtering - + バイリニア フィルタリング Images appear aliased (having jagged edges) without this, but it is faster - + 画像の角を滑らかにします。オフにすると見た目が粗くなりますが、高速化します &Image scaling - + 画像スケーリング @@ -888,12 +889,12 @@ No write permission or file is read-only. The amount to zoom every scroll wheel click - + ズームする量を設定します Zoom amount: - + 拡大量 @@ -903,226 +904,226 @@ No write permission or file is read-only. Scrolling &zooms - + マウススクロールでズーム Stop the image from going past its actual size when resizing the window - you can still zoom past it though - + ウィンドウのサイズを変更したときに、画像が実際のサイズを超えないようにします。 - 引き続きズームは可能です Image resizes &past actual size - + 画像は実際のサイズを超えてリサイズ Ignores select sides of an image when fitting to window (some sides will extend beyond the window boundaries) - + ウィンドウにフィットさせる際、画像の選択された辺を無視します。 Fit whole image - + 画像全体に合わせる Fit height - + 縦幅に合わせる Fit width - + 横幅に合わせる On window resize: - + ウインドウサイズの変更時: Choose whether or not zooming in and out above 100% zoom will zoom towards the cursor - + 拡大率が100%でない時に拡大または縮小した際、カーソルに向かって拡大します Zoom &towards cursor - + カーソルに向けて拡大 Miscellaneous - + その他 Sort files by: - + 並び順: Name - + 名前 Last Modified - + 最終更新日時 Size - + ファイルサイズ Type - + ファイルの種類 Random - + ランダム A&scending - + 昇順 D&escending - + 降順 Controls the amount of images preloaded - + プリロードされる画像の量を制御します Preloading: - + 画像プリロード: Disabled - + 無効 Adjacent - + 隣接 Extended - + 拡張 Controls whether or not qView should go back to the first item after reaching the end of a folder - + フォルダーの最後に到達した後に qView が最初の項目に戻るかどうかを制御します &Loop through folders - + フォルダー内をループ Slideshow direction: - + スライドショーの方向 Forward - + Backward - + 後ろ Slideshow timer: - + スライドショーを進める時間 sec - + Save &recent files - + 最近使用したファイルを記憶 &Update notifications on startup The notifications are for new qView releases - + アップデート時に通知を表示 Language: - + 言語: Move Back - + 前に戻る Do Nothing - + 何もしない Move Forward - + 次に移動 After deletion: - + 削除後の挙動: &Ask before deleting files - + ファイルを削除する前に確認 Shortcuts - + ショートカット Action - + アクション System Language - + システム言語 Restart Required - + 再起動が必要 You must restart qView to change the language. - + 言語を変更するには、qViewを再起動する必要があります @@ -1130,12 +1131,12 @@ No write permission or file is read-only. Rename... - + 名前を変更... File name: - + ファイル名 @@ -1147,13 +1148,15 @@ No write permission or file is read-only. Could not rename %1: No write permission or file is read-only. - + 名前を変更できません %1: +書き込み権限がないか、ファイルが読み取り専用です。 Could not rename %1: (Check that all characters are valid) - + 名前を変更できません %1: +(すべての文字が有効であることを確認してください) @@ -1161,17 +1164,17 @@ No write permission or file is read-only. Modify Shortcuts - + ショートカットを変更 Shortcut Already Used - + ショートカットはすでに使用されています "%1" is already bound to "%2" - + "%1" は既に "%2" にバインドされています @@ -1180,22 +1183,22 @@ No write permission or file is read-only. Welcome - + ようこそ &Enable update notifications on startup - + 起動時に更新通知を有効にする Thank you for downloading qView.<br>Here's a few tips to get you started: - + qViewをダウンロードしていただきありがとうございます。<br>始めるためのヒントをいくつか紹介します: <ul><li>Right click to access the main menu</li><li>Drag the image to reposition it</li><li>Scroll to zoom in and out</li><li>Use arrow keys to switch files</li></ul> - + <ul><li>右クリックしてメインメニューにアクセスします</li><li>画像をドラッグして位置を変更します</li><li>スクロールで画像を拡大・縮小します</li><li>矢印キーを使用してファイルを切り替えます</li></ul> @@ -1203,202 +1206,202 @@ No write permission or file is read-only. Open - + 開く Open URL - + URLから開く Open Containing Folder - + 格納フォルダを開く Show in Explorer - + エクスプローラーで開く Show in Finder - + Finderで開く Show File Info - + ファイル情報を表示 Restore from Trash - + ゴミ箱から復元 Undo Delete - + 削除を取り消す Copy - + コピー Paste - + 貼り付け Rename - + 名前の変更 Move to Trash - + ゴミ箱へ移動 Delete - + 削除 First File - + 最初のファイル Previous File - + 前のファイル Next File - + 次のファイル Last File - + 最後のファイル Zoom In - + 拡大 Zoom Out - + 縮小 Reset Zoom - + ズームを元に戻す Original Size - + オリジナルのサイズ Rotate Right - + 右に回転 Rotate Left - + 左に回転 Mirror - + 左右反転 Flip - + 上下反転 Full Screen - + 全画面表示 Save Frame As - + フレームを保存 Pause - + 一時停止 Next Frame - + 次のフレーム Decrease Speed - + 速度を下げる Reset Speed - + 速度をリセット Increase Speed - + 速度を上げる Toggle Slideshow - + スライドショーの切り替え Options - + オプション Preferences - + 環境設定 New Window - + 新しいウインドウ Close Window - + ウインドウを閉じる Close All - + すべて閉じる Quit - + 終了 Exit - + 終了 @@ -1406,33 +1409,34 @@ No write permission or file is read-only. Download - + ダウンロード qView Update Available - + qViewの更新が利用可能 qView %1 is available to download. - + qView %1 をダウンロードできます。 &Disable Update Checking - + アップデートの確認を無効化 qView Update Checking Disabled - + qViewアップデートの確認が無効です Update notifications on startup have been disabled. You can reenable them in the options dialog. - + 起動時のアップデート通知が無効になりました。 +オプションで再度有効にすることができます。 From 58af2111077030c928ac8a40a993992337eba36e Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Wed, 18 Sep 2024 21:48:35 -0400 Subject: [PATCH 08/17] macOS: Fix crash on exit --- src/actionmanager.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/actionmanager.cpp b/src/actionmanager.cpp index 8c1aad66..ccca4e8e 100644 --- a/src/actionmanager.cpp +++ b/src/actionmanager.cpp @@ -542,9 +542,13 @@ void ActionManager::actionTriggered(QAction *triggeredAction, MainWindow *releva auto key = triggeredAction->data().toStringList().first(); if (key == "quit") { - if (relevantWindow) // if a window was passed - relevantWindow->close(); // close it so geometry is saved +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + // Workaround to allow for a graceful exit (e.g. fire window close events) + // since QCoreApplication::quit can't accomplish this prior to Qt 6 + qGuiApp->postEvent(qGuiApp, new QEvent(QEvent::Quit)); +#else QCoreApplication::quit(); +#endif } else if (key == "newwindow") { qvApp->newWindow(); } else if (key == "open") { From da6a1cb205ba7a99dd684b24b05aa94ef9b056d4 Mon Sep 17 00:00:00 2001 From: hchiper Date: Sun, 22 Sep 2024 15:29:22 +0200 Subject: [PATCH 09/17] lupdate, added missing translations, updated some --- i18n/qview_fr.ts | 640 +++++++++++++++++++++++++++-------------------- 1 file changed, 371 insertions(+), 269 deletions(-) diff --git a/i18n/qview_fr.ts b/i18n/qview_fr.ts index c1cb2df6..ae15d9c7 100644 --- a/i18n/qview_fr.ts +++ b/i18n/qview_fr.ts @@ -4,305 +4,323 @@ ActionManager - + Window Fenêtre - + &File &Fichier - + &Edit &Modifier - + &Go &Aller - + &View &Visualiser - + &Tools &Outils - + &Help &Aide - + Open &Recent Ouvrir les &récents - - - + + Empty Vide - + Open With Ouvrir avec - + &Quit &Quitter - + Exit The quit action is called "Exit" on windows Sortir - + New Window Nouvelle fenêtre - + &Open... &Ouvrir… - + Open &URL... Ouvrir l'&URL… - + + Re&load File + Rechar&ger le fichier + + + Close Window Fermer la fenêtre - + Close All Close all windows, that is Tout fermer - + Open Containing &Folder Ouvrir le &dossier contenant - + Show in E&xplorer Open containing folder on windows Afficher dans l'E&xplorateur - + Show in &Finder Open containing folder on macOS Afficher dans &Finder - + Show File &Info Afficher les &infos du fichier - + &Move to Trash &Envoyer à la corbeille - + &Delete &Supprimer - + + Delete Permanently + Supprimer définitivement + + + &Restore from Trash &Restaurer - + &Undo Delete &Annuler la suppression - + &Copy &Copier - + &Paste &Coller - + R&ename... R&enommer… - + Zoom &In &Agrandir - + Zoom &Out &Diminuer - + Reset &Zoom Réinitialiser le &zoom - + Ori&ginal Size Taille ori&ginale - + Rotate &Right Tourner à &droite - + Rotate &Left Tourner à &gauche - + &Mirror &Miroir - + &Flip &Retourner - + Enter F&ull Screen Mode &plein écran - + &First File &Premier fichier - + Previous Fi&le Fi&chier précédent - + &Next File &Fichier suivant - + Las&t File Der&nier fichier - + Save Frame &As... Enregistrer l'écran &sous… - + Pa&use Pa&use - + &Next Frame &Écran suivant - + &Decrease Speed &Réduire la vitesse - + &Reset Speed &Réinitialiser la vitesse - + &Increase Speed &Augmenter la vitesse - + Start S&lideshow Démarrer le &diaporama - + + &Settings + This is for the options dialog on windows + &Paramètres + + Option&s This is for the options dialog on windows - Option&s + Option&s - Preference&s This is for the options dialog on non-mac unix platforms - Préférence&s + Préférence&s - + Preference&s... - This is for the options dialog on mac + This is for the options dialog on older mac versions Préférence&s… - + + Setting&s... + Paramètre&s... + + + &About &À propos - + &About qView This is for the about dialog on mac &À propos de qView - + &Welcome &Bienvenue - + Clear &Menu This is for clearing the recents menu - Nettoyer le menu + Nettoyer le &menu - + Other Application... Open with other program for unix non-mac - Autres applications + Autre application... - + Choose another app Open with other program for windows - Choisir une autre appli. + Choisir une autre appli - + Other... Open with other program for macos Autre... @@ -311,122 +329,137 @@ MainWindow - + Exit F&ull Screen - Quitter le plein écran + Quitter le p&lein écran - + Enter F&ull Screen - Activer le plein écran + Passer en p&lein écran - Empty - Vide + Vide - - - - - - - + + + + + + + Error Erreur - + Error: URL is invalid Erreur : l'URL est invalide - + Downloading image... Téléchargement de l'image… - + Cancel Annuler - - + + Open URL... Ouvrir l'URL… - + Error Erreur - + Error: Invalid image Erreur : image invalide - + URL of a supported image file: URL d’un fichier image pris en charge : - + Can't delete %1: No write permission or file is read-only. - Impossible de supprimer %1: -Le fichier est en lecture seule ou la permission en écriture est absente. + Impossible de supprimer %1: +Pas de perission d'écriture ou fichier en lecture seule. + + + + Are you sure you want to delete %1 permanently? This can't be undone. + Êtes-vous sûr de vouloir supprimer %1 définitivement ? Ceci est irréversible. - + Are you sure you want to move %1 to the Trash? - + Êtes-vous sûr de vouloir déplacer %1 dans la corbeille ? - + Are you sure you want to move %1 to the Recycle Bin? - + Êtes-vous sûr de vouloir déplacer %1 dans la corbeille ? + + + + Error occurred opening +%3 +%2 (Error %1) + Une erreur est survenue en ouvrant +%3 +%2 (Erreur %1) - + Delete - + Supprimer - + Do not ask again - + Ne plus demander - + Can't delete %1. - + Pas possible de supprimer %1. - - + + Not Supported - + Non supporté - - + + This program was compiled with an old version of Qt and this feature is not available. If you see this message, please report a bug! - + Ce programme a été compilé avec une ancienne version de Qt et cette fonctionnalité n'est pas disponible. +Si vous voyez ce message, veuillez signaler un bogue ! - + Can't undo deletion of %1: No write permission or file is read-only. - + Pas posssible d'annuler la suppression de %1 : +Pas de permission d'écriture ou fichier en lecteure seule. - + Failed undoing deletion of %1. - + Échec d'annulation de la supperssion de %1. Rename... @@ -443,27 +476,27 @@ No write permission or file is read-only. (Vérifiez que vous disposez d'un accès en écriture) - + Save Frame As... Enregistrer l'écran sous… - + Res&ume Rep&rendre - + Pause Pause - + Start S&lideshow - Démarrer le diaporama + Démarrer le diapo&rama - + Stop S&lideshow Arrêter le d&iaporama @@ -471,30 +504,30 @@ No write permission or file is read-only. OpenWith - + All Applications (*.app) - + Toutes les applications (*.app) - + Programs (*.exe *.pif *.com *.bat *.cmd) - + Programmes (*.exe *.pif *.com *.bat *.cmd) - + All Files (*) - + Tous les fichiers (*) QObject - + file fichier - + The file to open. Le fichier à ouvrir. @@ -522,23 +555,23 @@ No write permission or file is read-only. Conçu avec Qt %1 (%2) <br> Code source disponible sous GPLv3 sur <a style = "color: # 03A9F4; text-decoration: none;" href = "https://github.com/jurplel/qView">GitHub</a><br>Icône glyphe créé par Guilhem à partir du projet Noun<br>Copyright © %3 contributeurs qView et jurplel - + Checking for updates... Recherche de mises à jour… - + %1 update available %1 is a version number e.g. "4.0 update available" %1 mise à jour disponible - + No updates available Aucune mise à jour disponible - + Error checking for updates Erreur lors de la vérification des mises à jour @@ -550,17 +583,17 @@ No write permission or file is read-only. Fichiers pris en charge - + Supported Images - + Images supportées - + All Files Tous les fichiers - + Open... Ouvrir… @@ -568,23 +601,21 @@ No write permission or file is read-only. QVCocoaFunctions - + (default) - + (défaut) QVGraphicsView - Error - Erreur + Erreur - Error occurred opening "%3": %2 (Error %1) - Une erreur s'est produite en ouvrant « %3 » : + Une erreur s'est produite en ouvrant « %3 » : %2 (Erreur %1) @@ -653,12 +684,12 @@ No write permission or file is read-only. Actualiser - + %1 (%2 bytes) %1 (%2 octets) - + %1 x %2 (%3 MP) %1 × %2 (%3 MP) @@ -668,75 +699,74 @@ No write permission or file is read-only. Choose Application - + Choisissez une application - + Development - + Développement - + Education - + Éducation - + Games - + Jeux - + Graphics - + Graphisme - + Internet - + Internet - + Multimedia - + Multimédia - + Office - + Bureautique - + Science - + Science - + Settings - + Paramètres - + System - + Système - + Utilities - + Utilitaires - + Other - + Autres QVOptionsDialog - Options - Options + Options @@ -746,7 +776,7 @@ No write permission or file is read-only. Back&ground color: - Couleur& d’arrière-plan : + Couleur d’a&rrière-plan : @@ -859,7 +889,7 @@ No write permission or file is read-only. &Quit on last window closed - + &Quitter à la fermeture de la dernière fenêtre @@ -930,7 +960,7 @@ No write permission or file is read-only. Image resizes &past actual size - Redimensionnement de l'image et taille réelle passée + Image a&grandie au-delà de sa taille réelle @@ -969,175 +999,231 @@ No write permission or file is read-only. Zoom &vers le curseur - + + Color space conversion: + Conversion d'espace de couleur : + + + + Auto-detect + Automatique + + + + sRGB + + + + + Display P3 + + + + Miscellaneous Divers - + Sort files by: Trier les fichiers par : - + Name Nom - Last Modified - Dernière modification + Dernière modification - + Size Taille - + Type Type - + Random Aléatoire - + A&scending - Ordre croissant + Ordre &croissant - + D&escending - Ordre décroissant + Ordre &décroissant - - + + Controls the amount of images preloaded Contrôle la quantité d'images préchargées - + Preloading: Préchargement : - + + Disabled Désactivé - + + Settings + Paramètres + + + + Date Modified + Date de modification + + + + Date Created + Date de création + + + Adjacent Adjacent - + Extended Étendu - + Controls whether or not qView should go back to the first item after reaching the end of a folder Contrôle si qView doit ou non revenir au premier élément après avoir atteint la fin d'un dossier - + &Loop through folders &Parcourir les dossiers en boucle - + Slideshow direction: Direction du diaporama : - + Forward Vers l'avant - + Backward Vers l'arrière - + Slideshow timer: Minuterie du diaporama : - + sec s - + + Detect supported files in folder even if extension isn't recognized (may be slow with larger/network folders) + Détecte les fichiers supportés dans un dossier même avec une extension non reconnue (peut être lent pour un dossier volumineux ou en réseau) + + + + Allow &MIME content detection + Autoriser la détection du contenu &MIME + + + Save &recent files Enregistrer les &fichiers récents - + &Update notifications on startup The notifications are for new qView releases &Mettre à jour les notifications au démarrage - + Language: Langue : - + + Skip hidden files when browsing to the next/previous file + Sauter les fichiers cachés en passant d'un fichier au suivant / précédent + + + + Skip hidden files + Don't view files with 'hidden' attribute + Sauter les fichiers cachés + + + Move Back - + Revenir au précédent - + Do Nothing - + Ne rien faire - + Move Forward - + Passer au suivant - + After deletion: - + Après suppression : - + &Ask before deleting files - + &Demander avant de supprimer des fichiers - - + + Shortcuts Raccourcis - + Action Action - + System Language Langue du système - + Restart Required Redémarrage requis - + You must restart qView to change the language. Vous devez redémarrer qView pour changer la langue. @@ -1147,30 +1233,32 @@ No write permission or file is read-only. Rename... - Renommer… + Renommer… File name: - Nom du fichier : + Nom du fichier : Error - Erreur + Erreur Could not rename %1: No write permission or file is read-only. - + Pas pu renommer %1 : +Pas de permission d'écriture ou fichier en lecture seule. Could not rename %1: (Check that all characters are valid) - + Pas pu renommer %1 : +(Vérifiez si tous les caractères sont valides) @@ -1181,12 +1269,12 @@ No write permission or file is read-only. Modifier les raccourcis - + Shortcut Already Used Raccourci déjà utilisé - + "%1" is already bound to "%2" « %1 » est déjà lié à « %2 » @@ -1229,191 +1317,205 @@ No write permission or file is read-only. + Reload File + Recharger le fichier + + + Open Containing Folder Ouvrir dossier contenant - + Show in Explorer Afficher dans l'Explorateur - + Show in Finder Afficher dans Finder - + Show File Info Afficher les infos du fichier - + Restore from Trash - + Récupérer dans la corbeille - + Undo Delete - + Annuler la suppression - + Copy Copier - + Paste Coller - + Rename Renommer - + Move to Trash - + Déplacer dans la corbeille - + Delete - + Supprimer + + + + Delete Permanently + Supprimer définitivement - + First File Premier fichier - + Previous File Fichier précédent - + Next File Fichier suivant - + Last File Dernier fichier - + Zoom In Agrandir - + Zoom Out Réduire - + Reset Zoom Réinitialiser le zoom - + Original Size Taille originale - + Rotate Right Tourner à droite - + Rotate Left Tourner à gauche - + Mirror Miroir - + Flip Retourner - + Full Screen Plein écran - + Save Frame As Enregistrer l'écran sous - + Pause Pause - + Next Frame Écran suivant - + Decrease Speed Réduire la vitesse - + Reset Speed Réinitialiser la vitesse - + Increase Speed Augmenter la vitesse - + Toggle Slideshow Activer/désactiver le diaporama - + + Settings + Paramètres + + Options - Options + Options - + Preferences Préférences - + New Window Nouvelle fenêtre - + Close Window Fermer la fenêtre - + Close All Tout fermer - + Quit Quitter - + Exit Sortir @@ -1421,32 +1523,32 @@ No write permission or file is read-only. UpdateChecker - + Download Télécharger - + qView Update Available Mise à jour qView disponible - + qView %1 is available to download. qView %1 est disponible au téléchargement. - + &Disable Update Checking &Désactiver la vérification des mises à jour - + qView Update Checking Disabled Vérification de la mise à jour qView désactivée - + Update notifications on startup have been disabled. You can reenable them in the options dialog. Les notifications de mise à jour au démarrage ont été désactivées. From 36f261b37bf441c30bfbc22aa5390c77d6310f80 Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Sat, 12 Oct 2024 14:32:56 -0400 Subject: [PATCH 10/17] Qt 6.5.3 -> Qt 6.7.3 --- .github/workflows/build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 34147dc2..2a024922 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,19 +26,19 @@ jobs: osSuffix: '_qt5.9' skipPlugins: 'true' - runner: 'macos-12' - qtVersion: '6.5.3' + qtVersion: '6.7.3' qtModules: 'qtimageformats' buildArch: 'Universal' - runner: 'macos-12' qtVersion: '5.15.2' osSuffix: '_legacy' - runner: 'windows-2022' - qtVersion: '6.5.3' + qtVersion: '6.7.3' qtArch: 'win64_msvc2019_64' osSuffix: '_64' qtModules: 'qtimageformats' - runner: 'windows-2022' - qtVersion: '6.5.3' + qtVersion: '6.7.3' qtArch: 'win64_msvc2019_arm64' osSuffix: '_arm64' qtModules: 'qtimageformats' From d794c548402b5ae8a28d8e18beb1304713eaf96a Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Sat, 12 Oct 2024 15:27:48 -0400 Subject: [PATCH 11/17] Update Windows image formats plugin dependencies --- dist/scripts/download-plugins.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/scripts/download-plugins.ps1 b/dist/scripts/download-plugins.ps1 index d496979d..67332973 100755 --- a/dist/scripts/download-plugins.ps1 +++ b/dist/scripts/download-plugins.ps1 @@ -71,14 +71,14 @@ if ($pluginNames -contains 'kimageformats') { if (Test-Path -Path kimageformats/kimageformats/output/avif.dll -PathType Leaf) { cp kimageformats/kimageformats/output/avif.dll "$out_frm/" cp kimageformats/kimageformats/output/aom.dll "$out_frm/" + cp kimageformats/kimageformats/output/jpeg62.dll "$out_frm/" + cp kimageformats/kimageformats/output/libyuv.dll "$out_frm/" } # copy heif stuff if (Test-Path -Path kimageformats/kimageformats/output/heif.dll -PathType Leaf) { cp kimageformats/kimageformats/output/heif.dll "$out_frm/" cp kimageformats/kimageformats/output/libde265.dll "$out_frm/" - if ($env:buildArch -ne 'Arm64') { - cp kimageformats/kimageformats/output/libx265.dll "$out_frm/" - } + cp kimageformats/kimageformats/output/libx265.dll "$out_frm/" cp kimageformats/kimageformats/output/aom.dll "$out_frm/" } # copy raw stuff From db85e872939ddeb065cb4e0cef6159338767cbd3 Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Sat, 12 Oct 2024 15:28:32 -0400 Subject: [PATCH 12/17] Update Actions macOS runners --- .github/workflows/build.yml | 4 ++-- dist/scripts/build.ps1 | 5 +++++ dist/scripts/download-plugins.ps1 | 4 ++-- dist/scripts/windeployqt.ps1 | 4 ++-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2a024922..b75458a0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,11 +25,11 @@ jobs: qtVersion: '5.9' osSuffix: '_qt5.9' skipPlugins: 'true' - - runner: 'macos-12' + - runner: 'macos-14' qtVersion: '6.7.3' qtModules: 'qtimageformats' buildArch: 'Universal' - - runner: 'macos-12' + - runner: 'macos-13' qtVersion: '5.15.2' osSuffix: '_legacy' - runner: 'windows-2022' diff --git a/dist/scripts/build.ps1 b/dist/scripts/build.ps1 index 4575d535..19fdd598 100755 --- a/dist/scripts/build.ps1 +++ b/dist/scripts/build.ps1 @@ -7,6 +7,11 @@ param if ($IsWindows) { dist/scripts/vcvars.ps1 +} elseif ($IsMacOS) { + if ($qtVersion -lt [version]'6.5.3') { + # Workaround for QTBUG-117484 + sudo xcode-select --switch /Applications/Xcode_14.3.1.app + } } if ($IsMacOS -and $env:buildArch -eq 'Universal') { diff --git a/dist/scripts/download-plugins.ps1 b/dist/scripts/download-plugins.ps1 index 67332973..5836dbd1 100755 --- a/dist/scripts/download-plugins.ps1 +++ b/dist/scripts/download-plugins.ps1 @@ -4,14 +4,14 @@ $pluginNames = "qtapng", "kimageformats" -$qtVersion = ((qmake --version -split '\n')[1] -split ' ')[3] +$qtVersion = [version]((qmake --version -split '\n')[1] -split ' ')[3] Write-Host "Detected Qt Version $qtVersion" # Qt version availability and runner names are assumed. if ($IsWindows) { $imageName = "windows-2022" } elseif ($IsMacOS) { - $imageName = "macos-12" + $imageName = $qtVersion -lt [version]'6.5.3' ? "macos-13" : "macos-14" } else { $imageName = "ubuntu-20.04" } diff --git a/dist/scripts/windeployqt.ps1 b/dist/scripts/windeployqt.ps1 index 9f015054..051a786d 100755 --- a/dist/scripts/windeployqt.ps1 +++ b/dist/scripts/windeployqt.ps1 @@ -3,12 +3,12 @@ param $NightlyVersion = "" ) -$qtVersion = ((qmake --version -split '\n')[1] -split ' ')[3] +$qtVersion = [version]((qmake --version -split '\n')[1] -split ' ')[3] Write-Host "Detected Qt Version $qtVersion" if ($env:buildArch -ne 'Arm64') { # Download and extract openssl - if ($qtVersion -like '5.*') { + if ($qtVersion.Major -le 5) { $openSslDownloadUrl = "https://download.firedaemon.com/FireDaemon-OpenSSL/openssl-1.1.1w.zip" $openSslFolderVersion = "1.1" $openSslFilenameVersion = "1_1" From e7bb170fce96b8a1815ce873ecde9f8ebb50840a Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Sat, 12 Oct 2024 15:53:18 -0400 Subject: [PATCH 13/17] Windows: Update OpenSSL --- dist/scripts/windeployqt.ps1 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/dist/scripts/windeployqt.ps1 b/dist/scripts/windeployqt.ps1 index 051a786d..8f659b20 100755 --- a/dist/scripts/windeployqt.ps1 +++ b/dist/scripts/windeployqt.ps1 @@ -10,25 +10,25 @@ if ($env:buildArch -ne 'Arm64') { # Download and extract openssl if ($qtVersion.Major -le 5) { $openSslDownloadUrl = "https://download.firedaemon.com/FireDaemon-OpenSSL/openssl-1.1.1w.zip" - $openSslFolderVersion = "1.1" + $openSslSubfolder = "openssl-1.1\" $openSslFilenameVersion = "1_1" } else { - $openSslDownloadUrl = "https://download.firedaemon.com/FireDaemon-OpenSSL/openssl-3.2.1.zip" - $openSslFolderVersion = "3" + $openSslDownloadUrl = "https://download.firedaemon.com/FireDaemon-OpenSSL/openssl-3.3.2.zip" + $openSslSubfolder = "" $openSslFilenameVersion = "3" } Write-Host "Downloading $openSslDownloadUrl" $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest -Uri $openSslDownloadUrl -OutFile openssl.zip - 7z x -y .\openssl.zip + 7z x -y openssl.zip -o"openssl" # Install approprate binaries for architecture if ($env:buildArch -eq 'X86') { - copy openssl-$openSslFolderVersion\x86\bin\libssl-$openSslFilenameVersion.dll bin\ - copy openssl-$openSslFolderVersion\x86\bin\libcrypto-$openSslFilenameVersion.dll bin\ + copy openssl\$openSslSubfolder\x86\bin\libssl-$openSslFilenameVersion.dll bin\ + copy openssl\$openSslSubfolder\x86\bin\libcrypto-$openSslFilenameVersion.dll bin\ } else { - copy openssl-$openSslFolderVersion\x64\bin\libssl-$openSslFilenameVersion-x64.dll bin\ - copy openssl-$openSslFolderVersion\x64\bin\libcrypto-$openSslFilenameVersion-x64.dll bin\ + copy openssl\$openSslSubfolder\x64\bin\libssl-$openSslFilenameVersion-x64.dll bin\ + copy openssl\$openSslSubfolder\x64\bin\libcrypto-$openSslFilenameVersion-x64.dll bin\ } } From b75e68059a6efd5141d9b295278ed510482b9729 Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Mon, 14 Oct 2024 18:27:43 -0400 Subject: [PATCH 14/17] Add additional file extensions for HEIC/HEIF --- src/qvapplication.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/qvapplication.cpp b/src/qvapplication.cpp index 1767e2e7..8bec88dd 100644 --- a/src/qvapplication.cpp +++ b/src/qvapplication.cpp @@ -362,13 +362,25 @@ void QVApplication::defineFilterLists() filterString += "*" + fileExtension + " "; fileExtensionList << fileExtension; - // If we support jpg, we actually support the jfif, jfi, and jpe file extensions too almost certainly. + // Register additional file extensions that decoders support but don't advertise if (fileExtension == ".jpg") { filterList << "*.jpe" << "*.jfi" << "*.jfif"; filterString += "*.jpe *.jfi *.jfif "; fileExtensionList << ".jpe" << ".jfi" << ".jfif"; } + else if (fileExtension == ".heic") + { + filterList << "*.heics"; + filterString += "*.heics "; + fileExtensionList << ".heics"; + } + else if (fileExtension == ".heif") + { + filterList << "*.heifs" << "*.hif"; + filterString += "*.heifs *.hif "; + fileExtensionList << ".heifs" << ".hif"; + } } filterString.chop(1); filterString += ")"; From fcea73f9d9bef8a9e1763c31f115d452a5e7ef73 Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Mon, 14 Oct 2024 19:11:06 -0400 Subject: [PATCH 15/17] Windows: Fix ICC profile detection not working per-monitor --- src/qvwin32functions.cpp | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/qvwin32functions.cpp b/src/qvwin32functions.cpp index 056651e1..94af70d2 100644 --- a/src/qvwin32functions.cpp +++ b/src/qvwin32functions.cpp @@ -165,22 +165,31 @@ QByteArray QVWin32Functions::getIccProfileForWindow(const QWindow *window) { QByteArray result; const HWND hWnd = reinterpret_cast(window->winId()); - const HDC hDC = GetDC(hWnd); - if (hDC) + const HMONITOR hMonitor = MonitorFromWindow(hWnd, MONITOR_DEFAULTTONEAREST); + if (hMonitor) { - WCHAR profilePathBuff[MAX_PATH]; - DWORD profilePathSize = MAX_PATH; - if (GetICMProfileW(hDC, &profilePathSize, profilePathBuff)) + MONITORINFOEXW monitorInfo; + monitorInfo.cbSize = sizeof(MONITORINFOEXW); + if (GetMonitorInfoW(hMonitor, &monitorInfo)) { - QString profilePath = QString::fromWCharArray(profilePathBuff); - QFile file(profilePath); - if (file.open(QIODevice::ReadOnly)) + const HDC hDC = CreateICW(monitorInfo.szDevice, monitorInfo.szDevice, NULL, NULL); + if (hDC) { - result = file.readAll(); - file.close(); + WCHAR profilePathBuff[MAX_PATH]; + DWORD profilePathSize = MAX_PATH; + if (GetICMProfileW(hDC, &profilePathSize, profilePathBuff)) + { + QString profilePath = QString::fromWCharArray(profilePathBuff); + QFile file(profilePath); + if (file.open(QIODevice::ReadOnly)) + { + result = file.readAll(); + file.close(); + } + } + ReleaseDC(hWnd, hDC); } } - ReleaseDC(hWnd, hDC); } return result; } From 1f4b5a57b93bc017dd36457c208459f222cdbcb3 Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Tue, 15 Oct 2024 18:35:38 -0400 Subject: [PATCH 16/17] Supported file extension code cleanup --- src/qvapplication.cpp | 27 ++++++++++++++------------- src/qvapplication.h | 3 --- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/qvapplication.cpp b/src/qvapplication.cpp index 8bec88dd..b448fff8 100644 --- a/src/qvapplication.cpp +++ b/src/qvapplication.cpp @@ -347,9 +347,13 @@ void QVApplication::defineFilterLists() const auto &byteArrayFormats = QImageReader::supportedImageFormats(); auto filterString = tr("Supported Images") + " ("; - filterList.reserve(byteArrayFormats.size()-1); fileExtensionList.reserve(byteArrayFormats.size()-1); + const auto addExtension = [&](const QString &extension) { + filterString += "*" + extension + " "; + fileExtensionList << extension; + }; + // Build the filterlist, filterstring, and filterregexplist in one loop for (const auto &byteArray : byteArrayFormats) { @@ -358,28 +362,25 @@ void QVApplication::defineFilterLists() if (fileExtension == ".pdf") continue; - filterList << "*" + fileExtension; - filterString += "*" + fileExtension + " "; - fileExtensionList << fileExtension; + addExtension(fileExtension); // Register additional file extensions that decoders support but don't advertise if (fileExtension == ".jpg") { - filterList << "*.jpe" << "*.jfi" << "*.jfif"; - filterString += "*.jpe *.jfi *.jfif "; - fileExtensionList << ".jpe" << ".jfi" << ".jfif"; + addExtension(".jpe"); + addExtension(".jfi"); +#if QT_VERSION < QT_VERSION_CHECK(6, 8, 0) + addExtension(".jfif"); +#endif } else if (fileExtension == ".heic") { - filterList << "*.heics"; - filterString += "*.heics "; - fileExtensionList << ".heics"; + addExtension(".heics"); } else if (fileExtension == ".heif") { - filterList << "*.heifs" << "*.hif"; - filterString += "*.heifs *.hif "; - fileExtensionList << ".heifs" << ".hif"; + addExtension(".heifs"); + addExtension(".hif"); } } filterString.chop(1); diff --git a/src/qvapplication.h b/src/qvapplication.h index 4d19143a..9a7fcb3d 100644 --- a/src/qvapplication.h +++ b/src/qvapplication.h @@ -63,8 +63,6 @@ class QVApplication : public QApplication QMenuBar *getMenuBar() const { return menuBar; } - const QStringList &getFilterList() const { return filterList; } - const QStringList &getNameFilterList() const { return nameFilterList; } const QStringList &getFileExtensionList() const { return fileExtensionList; } @@ -87,7 +85,6 @@ class QVApplication : public QApplication QMenuBar *menuBar; - QStringList filterList; QStringList nameFilterList; QStringList fileExtensionList; QStringList mimeTypeNameList; From 671483f9ede2075b1f3a62f75f7b96ff7be83ca9 Mon Sep 17 00:00:00 2001 From: "J.D. Purcell" Date: Fri, 18 Oct 2024 18:40:24 -0400 Subject: [PATCH 17/17] Fix "Error occurred opening" sometimes randomly displaying after launching without a file --- src/qvimagecore.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qvimagecore.h b/src/qvimagecore.h index 36c58ccb..55548ef6 100644 --- a/src/qvimagecore.h +++ b/src/qvimagecore.h @@ -36,8 +36,8 @@ class QVImageCore : public QObject struct ErrorData { - bool hasError; - int errorNum; + bool hasError = false; + int errorNum = 0; QString errorString; };