From 85f013ebdb76ccb67943595e09fe2b19be728848 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Sat, 26 Jun 2021 20:53:14 +0400 Subject: [PATCH] Revert "Avoid removing portal platformtheme plugin in snap" This reverts commit 12db51fe75eb68a540636bd582811915d0e21a06. --- .../platform/linux/file_utilities_linux.cpp | 81 ------------------- snap/snapcraft.yaml | 2 + 2 files changed, 2 insertions(+), 81 deletions(-) diff --git a/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp b/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp index f052228cb3..b3e65ff0c1 100644 --- a/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/file_utilities_linux.cpp @@ -9,7 +9,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "platform/linux/linux_gtk_integration.h" #include "platform/linux/specific_linux.h" -#include "storage/localstorage.h" #ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION #include "platform/linux/linux_xdp_file_dialog.h" @@ -18,7 +17,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include #include -#include #include #include @@ -91,73 +89,6 @@ void UnsafeLaunch(const QString &filepath) { } // namespace File namespace FileDialog { -namespace { - -using Type = ::FileDialog::internal::Type; - -bool GetQt( - QPointer parent, - QStringList &files, - QByteArray &remoteContent, - const QString &caption, - const QString &filter, - Type type, - QString startFile) { - if (cDialogLastPath().isEmpty()) { - InitLastPath(); - } - - QFileDialog dialog(parent, caption, QString(), filter); - - dialog.setOptions(QFileDialog::DontUseNativeDialog); - dialog.setModal(true); - if (type == Type::ReadFile || type == Type::ReadFiles) { - dialog.setFileMode((type == Type::ReadFiles) - ? QFileDialog::ExistingFiles - : QFileDialog::ExistingFile); - dialog.setAcceptMode(QFileDialog::AcceptOpen); - } else if (type == Type::ReadFolder) { - dialog.setAcceptMode(QFileDialog::AcceptOpen); - dialog.setFileMode(QFileDialog::Directory); - dialog.setOption(QFileDialog::ShowDirsOnly); - } else { - dialog.setFileMode(QFileDialog::AnyFile); - dialog.setAcceptMode(QFileDialog::AcceptSave); - } - if (startFile.isEmpty() || startFile.at(0) != '/') { - startFile = cDialogLastPath() + '/' + startFile; - } - dialog.setDirectory(QFileInfo(startFile).absoluteDir().absolutePath()); - if (type == Type::WriteFile) { - dialog.selectFile(startFile); - } - - const auto res = dialog.exec(); - - if (type != Type::ReadFolder) { - // Save last used directory for all queries except directory choosing. - const auto path = dialog.directory().absolutePath(); - if (!path.isEmpty() && path != cDialogLastPath()) { - cSetDialogLastPath(path); - Local::writeSettings(); - } - } - - if (res == QDialog::Accepted) { - if (type == Type::ReadFiles) { - files = dialog.selectedFiles(); - } else { - files = dialog.selectedFiles().mid(0, 1); - } - return true; - } - - files = QStringList(); - remoteContent = QByteArray(); - return false; -} - -} bool Get( QPointer parent, @@ -200,18 +131,6 @@ bool Get( return *result; } } - // avoid situation when portals don't work - // and Qt tries to use portals as well - if (InFlatpak() || InSnap()) { - return GetQt( - parent, - files, - remoteContent, - caption, - filter, - type, - startFile); - } return ::FileDialog::internal::GetDefault( parent, files, diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 3782f39d61..63472b25a5 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -420,6 +420,8 @@ parts: - -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/bin - -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/mkspecs - -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/examples + # Allow tdesktop's custom try-portal-and-fallback logic to work + - -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/qt5/plugins/platformthemes/libqxdgdesktopportal.so - -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/*.a - -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/*.la - -./usr/lib/$SNAPCRAFT_ARCH_TRIPLET/*.prl