[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-kimageshop
Subject: =?utf-8?q?=5Bgraphics/krita=5D_libs=3A_Fix_inconsistency_in_preview_visibility_on_AppImages?=
From: L. E. Segovia <null () kde ! org>
Date: 2022-01-04 16:59:28
Message-ID: 20220104165928.C2B4A124132E () leptone ! kde ! org
[Download RAW message or body]
Git commit ad416d3c2f73cacd0bce4ce8add9a2755d1b769a by L. E. Segovia.
Committed on 04/01/2022 at 16:58.
Pushed by lsegovia into branch 'master'.
Fix inconsistency in preview visibility on AppImages
In AppImages, the Qt file picker will always be used regardless of the
value of QFileDialog::DontUseNativeDialog. This commit ensures the
preview is shown if there's a layout() present when the checkbox isn't
ticked, and disables the checkbox altogether on AppImages.
BUG: 447806
CCMAIL: kimageshop@kde.org
M +7 -0 libs/ui/dialogs/kis_dlg_preferences.cc
M +3 -1 libs/widgetutils/KisPreviewFileDialog.cpp
M +8 -1 libs/widgetutils/KoFileDialog.cpp
https://invent.kde.org/graphics/krita/commit/ad416d3c2f73cacd0bce4ce8add9a2755d1b769a
diff --git a/libs/ui/dialogs/kis_dlg_preferences.cc \
b/libs/ui/dialogs/kis_dlg_preferences.cc index 4e0c31caf1..732f428832 100644
--- a/libs/ui/dialogs/kis_dlg_preferences.cc
+++ b/libs/ui/dialogs/kis_dlg_preferences.cc
@@ -325,6 +325,13 @@ GeneralTab::GeneralTab(QWidget *_parent, const char *_name)
#endif
m_chkNativeFileDialog->setChecked(!group.readEntry("DontUseNativeFileDialog", \
dontUseNative));
+ if (!qEnvironmentVariable("APPIMAGE").isEmpty()) {
+ // AppImages don't have access to platform plugins. BUG: 447805
+ // Setting the checkbox to false is
+ m_chkNativeFileDialog->setChecked(false);
+ m_chkNativeFileDialog->setEnabled(false);
+ }
+
intMaxBrushSize->setValue(KisImageConfig(true).maxBrushSize());
//
diff --git a/libs/widgetutils/KisPreviewFileDialog.cpp \
b/libs/widgetutils/KisPreviewFileDialog.cpp index 4177ec54d4..c86ee581eb 100644
--- a/libs/widgetutils/KisPreviewFileDialog.cpp
+++ b/libs/widgetutils/KisPreviewFileDialog.cpp
@@ -83,7 +83,9 @@ void KisPreviewFileDialog::resetIconProvider()
void KisPreviewFileDialog::onCurrentChanged(const QString &path)
{
// Generate the preview only if we're not using the native dialog.
- if (testOption(QFileDialog::DontUseNativeDialog) && m_preview) {
+ // In AppImages, the platform plugins are inaccessible,
+ // so we check the existance of a widget layout instead.
+ if ((testOption(QFileDialog::DontUseNativeDialog) || layout()) && m_preview) {
QIcon icon;
if (s_iconCreator && s_iconCreator->createFileIcon(path, icon, \
devicePixelRatioF(), QSize(512, 512), true)) {
m_preview->setPixmap(icon.pixmap(m_preview->width(), \
m_preview->height()));
diff --git a/libs/widgetutils/KoFileDialog.cpp b/libs/widgetutils/KoFileDialog.cpp
index 460350b5d0..70438ba777 100644
--- a/libs/widgetutils/KoFileDialog.cpp
+++ b/libs/widgetutils/KoFileDialog.cpp
@@ -161,7 +161,14 @@ void KoFileDialog::createFileDialog()
dontUseNative = false;
#endif
- bool optionDontUseNative = group.readEntry("DontUseNativeFileDialog", \
dontUseNative); + bool optionDontUseNative;
+ if (!qEnvironmentVariable("APPIMAGE").isEmpty()) {
+ // AppImages don't have access to platform plugins. BUG: 447805
+ optionDontUseNative = false;
+ } else {
+ optionDontUseNative = group.readEntry("DontUseNativeFileDialog", \
dontUseNative); + }
+
d->fileDialog->setOption(QFileDialog::DontUseNativeDialog, optionDontUseNative);
d->fileDialog->setOption(QFileDialog::DontConfirmOverwrite, false);
d->fileDialog->setOption(QFileDialog::HideNameFilterDetails, dontUseNative ? \
true : false);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic