Hello community,
here is the log from the commit of package lxqt-qtplugin for openSUSE:Factory checked in at 2019-02-25 17:49:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lxqt-qtplugin (Old)
and /work/SRC/openSUSE:Factory/.lxqt-qtplugin.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lxqt-qtplugin"
Mon Feb 25 17:49:33 2019 rev:11 rq:670393 version:0.14.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/lxqt-qtplugin/lxqt-qtplugin.changes 2018-06-29 22:31:22.486256834 +0200
+++ /work/SRC/openSUSE:Factory/.lxqt-qtplugin.new.28833/lxqt-qtplugin.changes 2019-02-25 17:49:34.414803609 +0100
@@ -1,0 +2,13 @@
+Thu Jan 31 10:21:21 UTC 2019 - Michael Vetter
+
+- Update to 0.14.0:
+ * Dynamically load libfm-qt on demand to create
+ the file dialog helper.
+ * Don't use automatic string conversions
+ * Improved cmake scripting
+ - Set cmake_minimum_required to 3.1.0
+ - Removed locale compile definitons
+ - Removed the superfluous libfm-qt dependency
+- Move translation from lxqt-l10n into package
+
+-------------------------------------------------------------------
Old:
----
lxqt-qtplugin-0.13.0.tar.xz
lxqt-qtplugin-0.13.0.tar.xz.asc
New:
----
lxqt-qtplugin-0.14.0.tar.xz
lxqt-qtplugin-0.14.0.tar.xz.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lxqt-qtplugin.spec ++++++
--- /var/tmp/diff_new_pack.bITt4q/_old 2019-02-25 17:49:35.438803189 +0100
+++ /var/tmp/diff_new_pack.bITt4q/_new 2019-02-25 17:49:35.438803189 +0100
@@ -1,7 +1,7 @@
#
# spec file for package lxqt-qtplugin
#
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,12 +12,12 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: lxqt-qtplugin
-Version: 0.13.0
+Version: 0.14.0
Release: 0
Summary: LXQt platform integration plugin for Qt 5
License: LGPL-2.1-or-later
@@ -26,12 +26,11 @@
Source: https://github.com/lxqt/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz
Source1: https://github.com/lxqt/%{name}/releases/download/%{version}/%{name}-%{version}.tar.xz.asc
Source2: %{name}.keyring
-BuildRequires: cmake >= 3.0.2
+BuildRequires: cmake >= 3.1.0
BuildRequires: gcc-c++
BuildRequires: libQt5Gui-private-headers-devel
BuildRequires: libexif-devel
-BuildRequires: libfm-qt-devel >= 0.13.0
-BuildRequires: lxqt-build-tools-devel >= 0.5.0
+BuildRequires: lxqt-build-tools-devel >= 0.6.0
BuildRequires: pkgconfig
BuildRequires: cmake(KF5WindowSystem)
BuildRequires: pkgconfig(Qt5Gui)
++++++ lxqt-qtplugin-0.13.0.tar.xz -> lxqt-qtplugin-0.14.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.13.0/CHANGELOG new/lxqt-qtplugin-0.14.0/CHANGELOG
--- old/lxqt-qtplugin-0.13.0/CHANGELOG 2018-05-21 20:41:42.000000000 +0200
+++ new/lxqt-qtplugin-0.14.0/CHANGELOG 2019-01-24 23:04:03.000000000 +0100
@@ -1,4 +1,16 @@
+lxqt-qtplugin-0.14.0 / 2019-01-25
+=================================
+
+ * Bumped version to 0.14.0
+ * Dynamically load libfm-qt on demand to create
+ the file dialog helper.
+ * Don't use automatic string conversions
+ * Improved cmake scripting
+ - Set cmake_minimum_required to 3.1.0
+ - Removed locale compile definitons
+ - Removed the superfluous libfm-qt dependency
+
lxqt-qtplugin-0.13.0 / 2018-05-21
=================================
@@ -12,8 +24,8 @@
* Silent unused parameters warnings
* Remember the view mode
-0.12.0 / 2017-10-21
-===================
+lxqt-qtplugin-0.12.0 / 2017-10-21
+=================================
* Release 0.12.0: Update changelog
* Set an informal patch version
@@ -41,16 +53,16 @@
* Bump year
* Updates lxqt-build-tools required version
-0.11.1 / 2016-12-11
-===================
+lxqt-qtplugin-0.11.1 / 2016-12-11
+=================================
* Release 0.11.1: Update changelog
* Use lxqt-build-tools
* Use the new lxqt-build-tools package
* Remove cpack (#14)
-0.11.0 / 2016-09-24
-===================
+lxqt-qtplugin-0.11.0 / 2016-09-24
+=================================
* Release 0.11.0: Add changelog
* Add Qt5XdgIconLoader as dependency (#13)
@@ -63,8 +75,8 @@
* Adds $XDG_DATA_HOME to the XdgIconThemePaths
* Bump year in AUTHORS
-0.10.0 / 2015-11-02
-===================
+lxqt-qtplugin-0.10.0 / 2015-11-02
+=================================
* Remove unnecessary qDebug calls
* Use markdown for README
@@ -85,16 +97,16 @@
* Remove trailing whitespaces
* removed debug (which makes every app too verbose)
-0.9.0 / 2015-01-19
-==================
+lxqt-qtplugin-0.9.0 / 2015-01-19
+================================
* Try to workaround bug #441 - All LXQt::Settings and QSettings file change monitoring stop working.
* - Unify naming for a unique lxqt. No more suffixes
* Qt5: Use XDG_DATA_DIR for themeHint::IconThemeSearchPaths
* CMakeLists.txt cleanuop and drop Qt4 support
-0.8.0 / 2014-07-18
-==================
+lxqt-qtplugin-0.8.0 / 2014-07-18
+================================
* Apply the default application font on program startup.
* Apply the new font to all apps correctly and fix lxde/lxde-qt bug #212 - Changing font or theme in lxqt-config-appearance has no effect.
@@ -114,8 +126,8 @@
* Remove unnecessary debug messages.
* Fix int-to-enum casting
-0.7.0 / 2014-04-29
-==================
+lxqt-qtplugin-0.7.0 / 2014-04-29
+================================
* Update AUTHORS and COPYING
* Add CPack rules for creating tarball
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.13.0/CMakeLists.txt new/lxqt-qtplugin-0.14.0/CMakeLists.txt
--- old/lxqt-qtplugin-0.13.0/CMakeLists.txt 2018-05-21 20:41:42.000000000 +0200
+++ new/lxqt-qtplugin-0.14.0/CMakeLists.txt 2019-01-24 23:04:03.000000000 +0100
@@ -1,32 +1,32 @@
-cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+# CMP0000: Call the cmake_minimum_required() command at the beginning of the top-level
+# CMakeLists.txt file even before calling the project() command.
+# The cmake_minimum_required(VERSION) command implicitly invokes the cmake_policy(VERSION)
+# command to specify that the current project code is written for the given range of CMake
+# versions.
project(lxqt-qtplugin)
include(GNUInstallDirs)
-set(LXQTBT_MINIMUM_VERSION "0.5.0")
-
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
-find_package(Qt5Widgets REQUIRED)
-find_package(Qt5LinguistTools REQUIRED)
-find_package(Qt5DBus REQUIRED)
-find_package(dbusmenu-qt5 REQUIRED)
+# Minimum Versions
+set(LXQTBT_MINIMUM_VERSION "0.6.0")
+set(QT_MINIMUM_VERSION "5.7.1")
+set(QTXDG_MINIMUM_VERSION "3.3.0")
+
+find_package(Qt5DBus ${QT_MINIMUM_VERSION} REQUIRED)
+find_package(Qt5LinguistTools ${QT_MINIMUM_VERSION} REQUIRED)
+find_package(Qt5Widgets ${QT_MINIMUM_VERSION} REQUIRED)
+find_package(Qt5XdgIconLoader ${QTXDG_MINIMUM_VERSION} REQUIRED)
find_package(lxqt-build-tools ${LXQTBT_MINIMUM_VERSION} REQUIRED)
-find_package(Qt5XdgIconLoader REQUIRED)
+find_package(dbusmenu-qt5 REQUIRED)
# Patch Version 0
-# for file dialog support
-find_package(Qt5X11Extras REQUIRED)
-find_package(fm-qt REQUIRED)
-
include(LXQtPreventInSourceBuilds)
include(LXQtCompilerSettings NO_POLICY_SCOPE)
-if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE Release)
-endif()
-
add_subdirectory(src)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.13.0/src/CMakeLists.txt new/lxqt-qtplugin-0.14.0/src/CMakeLists.txt
--- old/lxqt-qtplugin-0.13.0/src/CMakeLists.txt 2018-05-21 20:41:42.000000000 +0200
+++ new/lxqt-qtplugin-0.14.0/src/CMakeLists.txt 2019-01-24 23:04:03.000000000 +0100
@@ -6,7 +6,6 @@
set(qtlxqt_HDRS
lxqtplatformtheme.h
lxqtsystemtrayicon.h
- lxqtfiledialoghelper.h
statusnotifieritem/statusnotifieritem.h
statusnotifieritem/dbustypes.h
)
@@ -15,7 +14,6 @@
main.cpp
lxqtplatformtheme.cpp
lxqtsystemtrayicon.cpp
- lxqtfiledialoghelper.cpp
statusnotifieritem/statusnotifieritem.cpp
statusnotifieritem/dbustypes.cpp
)
@@ -31,6 +29,11 @@
target_compile_definitions(qtlxqt
PRIVATE
"QT_NO_FOREACH"
+ "QT_USE_QSTRINGBUILDER"
+ "QT_NO_CAST_FROM_ASCII"
+ "QT_NO_CAST_TO_ASCII"
+ "QT_NO_URL_CAST_FROM_STRING"
+ "QT_NO_CAST_FROM_BYTEARRAY"
)
target_link_libraries(qtlxqt
@@ -38,7 +41,6 @@
Qt5::DBus
dbusmenu-qt5
Qt5XdgIconLoader
- fm-qt
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.13.0/src/lxqtfiledialoghelper.cpp new/lxqt-qtplugin-0.14.0/src/lxqtfiledialoghelper.cpp
--- old/lxqt-qtplugin-0.13.0/src/lxqtfiledialoghelper.cpp 2018-05-21 20:41:42.000000000 +0200
+++ new/lxqt-qtplugin-0.14.0/src/lxqtfiledialoghelper.cpp 1970-01-01 01:00:00.000000000 +0100
@@ -1,276 +0,0 @@
-#include "lxqtfiledialoghelper.h"
-
-#include
-#include
-
-#include <QWindow>
-#include <QDebug>
-#include <QTimer>
-#include <QSettings>
-
-#include <memory>
-
-static std::unique_ptrFm::LibFmQt libfmQtContext_;
-
-inline static const QString viewModeToString(Fm::FolderView::ViewMode value);
-inline static Fm::FolderView::ViewMode viewModeFromString(const QString& str);
-
-LXQtFileDialogHelper::LXQtFileDialogHelper() {
- if(!libfmQtContext_) {
- // initialize libfm-qt only once
- libfmQtContext_ = std::unique_ptrFm::LibFmQt{new Fm::LibFmQt()};
- }
-
- // can only be used after libfm-qt initialization
- dlg_ = std::unique_ptrFm::FileDialog(new Fm::FileDialog());
- connect(dlg_.get(), &Fm::FileDialog::accepted, [this]() {
- saveSettings();
- accept();
- });
- connect(dlg_.get(), &Fm::FileDialog::rejected, [this]() {
- saveSettings();
- reject();
- });
-
- connect(dlg_.get(), &Fm::FileDialog::fileSelected, this, &LXQtFileDialogHelper::fileSelected);
- connect(dlg_.get(), &Fm::FileDialog::filesSelected, this, &LXQtFileDialogHelper::filesSelected);
- connect(dlg_.get(), &Fm::FileDialog::currentChanged, this, &LXQtFileDialogHelper::currentChanged);
- connect(dlg_.get(), &Fm::FileDialog::directoryEntered, this, &LXQtFileDialogHelper::directoryEntered);
- connect(dlg_.get(), &Fm::FileDialog::filterSelected, this, &LXQtFileDialogHelper::filterSelected);
-}
-
-LXQtFileDialogHelper::~LXQtFileDialogHelper() {
-}
-
-void LXQtFileDialogHelper::exec() {
- dlg_->exec();
-}
-
-bool LXQtFileDialogHelper::show(Qt::WindowFlags windowFlags, Qt::WindowModality windowModality, QWindow* parent) {
- dlg_->setAttribute(Qt::WA_NativeWindow, true); // without this, sometimes windowHandle() will return nullptr
-
- dlg_->setWindowFlags(windowFlags);
- dlg_->setWindowModality(windowModality);
-
- // Reference: KDE implementation
- // https://github.com/KDE/plasma-integration/blob/master/src/platformtheme/kdep...
- dlg_->windowHandle()->setTransientParent(parent);
-
- applyOptions();
-
- loadSettings();
- // central positioning with respect to the parent window
- if(parent && parent->isVisible()) {
- dlg_->move(parent->x() + (parent->width() - dlg_->width()) / 2,
- parent->y() + (parent->height() - dlg_->height()) / 2);
- }
-
- // NOTE: the timer here is required as a workaround borrowed from KDE. Without this, the dialog UI will be blocked.
- // QFileDialog calls our platform plugin to show our own native file dialog instead of showing its widget.
- // However, it still creates a hidden dialog internally, and then make it modal.
- // So user input from all other windows that are not the children of the QFileDialog widget will be blocked.
- // This includes our own dialog. After the return of this show() method, QFileDialog creates its own window and
- // then make it modal, which blocks our UI. The timer schedule a delayed popup of our file dialog, so we can
- // show again after QFileDialog and override the modal state. Then our UI can be unblocked.
- QTimer::singleShot(0, dlg_.get(), &QDialog::show);
- dlg_->setFocus();
- return true;
-}
-
-void LXQtFileDialogHelper::hide() {
- dlg_->hide();
-}
-
-bool LXQtFileDialogHelper::defaultNameFilterDisables() const {
- return false;
-}
-
-void LXQtFileDialogHelper::setDirectory(const QUrl& directory) {
- dlg_->setDirectory(directory);
-}
-
-QUrl LXQtFileDialogHelper::directory() const {
- return dlg_->directory();
-}
-
-void LXQtFileDialogHelper::selectFile(const QUrl& filename) {
- dlg_->selectFile(filename);
-}
-
-QList<QUrl> LXQtFileDialogHelper::selectedFiles() const {
- return dlg_->selectedFiles();
-}
-
-void LXQtFileDialogHelper::setFilter() {
- // FIXME: what's this?
- // The gtk+ 3 file dialog helper in Qt5 update options in this method.
- applyOptions();
-}
-
-void LXQtFileDialogHelper::selectNameFilter(const QString& filter) {
- dlg_->selectNameFilter(filter);
-}
-
-#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0)
-QString LXQtFileDialogHelper::selectedMimeTypeFilter() const {
- return dlg_->selectedMimeTypeFilter();
-}
-
-void LXQtFileDialogHelper::selectMimeTypeFilter(const QString& filter) {
- dlg_->selectMimeTypeFilter(filter);
-}
-#endif
-
-QString LXQtFileDialogHelper::selectedNameFilter() const {
- return dlg_->selectedNameFilter();
-}
-
-bool LXQtFileDialogHelper::isSupportedUrl(const QUrl& url) const {
- return dlg_->isSupportedUrl(url);
-}
-
-void LXQtFileDialogHelper::applyOptions() {
- auto& opt = options();
-
- // set title
- if(opt->windowTitle().isEmpty()) {
- dlg_->setWindowTitle(opt->acceptMode() == QFileDialogOptions::AcceptOpen ? tr("Open File")
- : tr("Save File"));
- }
- else {
- dlg_->setWindowTitle(opt->windowTitle());
- }
-
- dlg_->setFilter(opt->filter());
- dlg_->setFileMode(QFileDialog::FileMode(opt->fileMode()));
- dlg_->setAcceptMode(QFileDialog::AcceptMode(opt->acceptMode())); // also sets a default label for accept button
- // bool useDefaultNameFilters() const;
- dlg_->setNameFilters(opt->nameFilters());
- if(!opt->mimeTypeFilters().empty()) {
- dlg_->setMimeTypeFilters(opt->mimeTypeFilters());
- }
-
- dlg_->setDefaultSuffix(opt->defaultSuffix());
- // QStringList history() const;
-
- // explicitly set labels
- for(int i = 0; i < QFileDialogOptions::DialogLabelCount; ++i) {
- auto label = static_castQFileDialogOptions::DialogLabel(i);
- if(opt->isLabelExplicitlySet(label)) {
- dlg_->setLabelText(static_castQFileDialog::DialogLabel(label), opt->labelText(label));
- }
- }
-
- auto url = opt->initialDirectory();
- if(url.isValid()) {
- dlg_->setDirectory(url);
- }
-
-
-#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0)
- auto filter = opt->initiallySelectedMimeTypeFilter();
- if(!filter.isEmpty()) {
- selectMimeTypeFilter(filter);
- }
- else {
- filter = opt->initiallySelectedNameFilter();
- if(!filter.isEmpty()) {
- selectNameFilter(opt->initiallySelectedNameFilter());
- }
- }
-#else
- auto filter = opt->initiallySelectedNameFilter();
- if(!filter.isEmpty()) {
- selectNameFilter(filter);
- }
-#endif
-
- auto selectedFiles = opt->initiallySelectedFiles();
- for(const auto& selectedFile: selectedFiles) {
- selectFile(selectedFile);
- }
- // QStringList supportedSchemes() const;
-}
-
-static const QString viewModeToString(Fm::FolderView::ViewMode value) {
- QString ret;
- switch(value) {
- case Fm::FolderView::DetailedListMode:
- default:
- ret = QLatin1String("Detailed");
- break;
- case Fm::FolderView::CompactMode:
- ret = QLatin1String("Compact");
- break;
- case Fm::FolderView::IconMode:
- ret = QLatin1String("Icon");
- break;
- case Fm::FolderView::ThumbnailMode:
- ret = QLatin1String("Thumbnail");
- break;
- }
- return ret;
-}
-
-Fm::FolderView::ViewMode viewModeFromString(const QString& str) {
- Fm::FolderView::ViewMode ret;
- if(str == QLatin1String("Detailed")) {
- ret = Fm::FolderView::DetailedListMode;
- }
- else if(str == QLatin1String("Compact")) {
- ret = Fm::FolderView::CompactMode;
- }
- else if(str == QLatin1String("Icon")) {
- ret = Fm::FolderView::IconMode;
- }
- else if(str == QLatin1String("Thumbnail")) {
- ret = Fm::FolderView::ThumbnailMode;
- }
- else {
- ret = Fm::FolderView::DetailedListMode;
- }
- return ret;
-}
-
-void LXQtFileDialogHelper::loadSettings() {
- QSettings settings(QSettings::UserScope, "lxqt", "filedialog");
- settings.beginGroup ("Sizes");
- dlg_->resize(settings.value("WindowSize", QSize(700, 500)).toSize());
- dlg_->setSplitterPos(settings.value("SplitterPos", 200).toInt());
- settings.endGroup();
-
- settings.beginGroup ("View");
- dlg_->setViewMode(viewModeFromString(settings.value("Mode", "Detailed").toString()));
- settings.endGroup();
-}
-
-void LXQtFileDialogHelper::saveSettings() {
- QSettings settings(QSettings::UserScope, "lxqt", "filedialog");
- settings.beginGroup ("Sizes");
- QSize windowSize = dlg_->size();
- if(settings.value("WindowSize") != windowSize) { // no redundant write
- settings.setValue("WindowSize", windowSize);
- }
- int splitterPos = dlg_->splitterPos();
- if(settings.value("SplitterPos") != splitterPos) {
- settings.setValue("SplitterPos", splitterPos);
- }
- settings.endGroup();
-
- settings.beginGroup ("View");
- QString mode = viewModeToString(dlg_->viewMode());
- if(settings.value("Mode") != mode) {
- settings.setValue("Mode", mode);
- }
- settings.endGroup();
-}
-
-/*
-FileDialogPlugin::FileDialogPlugin() {
-
-}
-
-QPlatformFileDialogHelper *FileDialogPlugin::createHelper() {
- return new LXQtFileDialogHelper();
-}
-*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.13.0/src/lxqtfiledialoghelper.h new/lxqt-qtplugin-0.14.0/src/lxqtfiledialoghelper.h
--- old/lxqt-qtplugin-0.13.0/src/lxqtfiledialoghelper.h 2018-05-21 20:41:42.000000000 +0200
+++ new/lxqt-qtplugin-0.14.0/src/lxqtfiledialoghelper.h 1970-01-01 01:00:00.000000000 +0100
@@ -1,50 +0,0 @@
-#ifndef LXQTFILEDIALOGHELPER_H
-#define LXQTFILEDIALOGHELPER_H
-
-#include // this private header is subject to changes
-#include <memory>
-
-namespace Fm {
-class FileDialog;
-}
-
-class Q_GUI_EXPORT LXQtFileDialogHelper : public QPlatformFileDialogHelper {
- Q_OBJECT
-
-public:
- LXQtFileDialogHelper();
-
- virtual ~LXQtFileDialogHelper();
-
- // QPlatformDialogHelper
- void exec() override;
- bool show(Qt::WindowFlags windowFlags, Qt::WindowModality windowModality, QWindow *parent) override;
- void hide() override;
-
- // QPlatformFileDialogHelper
- bool defaultNameFilterDisables() const override;
- void setDirectory(const QUrl &directory) override;
- QUrl directory() const override;
- void selectFile(const QUrl &filename) override;
- QList<QUrl> selectedFiles() const override;
- void setFilter() override;
- void selectNameFilter(const QString &filter) override;
-#if QT_VERSION >= QT_VERSION_CHECK(5, 9, 0)
- QString selectedMimeTypeFilter() const override;
- void selectMimeTypeFilter(const QString &filter) override;
-#endif
- QString selectedNameFilter() const override;
-
- bool isSupportedUrl(const QUrl &url) const override;
-
-private:
- void applyOptions();
- void loadSettings();
- void saveSettings();
-
-private:
- std::unique_ptrFm::FileDialog dlg_;
-};
-
-
-#endif // LXQTFILEDIALOGHELPER_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.13.0/src/lxqtplatformtheme.cpp new/lxqt-qtplugin-0.14.0/src/lxqtplatformtheme.cpp
--- old/lxqt-qtplugin-0.13.0/src/lxqtplatformtheme.cpp 2018-05-21 20:41:42.000000000 +0200
+++ new/lxqt-qtplugin-0.14.0/src/lxqtplatformtheme.cpp 2019-01-24 23:04:03.000000000 +0100
@@ -45,8 +45,14 @@
#include <QFileSystemWatcher>
#include <QStyle>
#include
+#include <QLibrary>
+
+
+// Function to create a new Fm::FileDialogHelper object.
+// This is dynamically loaded at runtime on demand from libfm-qt.
+typedef QPlatformDialogHelper* (*CreateFileDialogHelperFunc)();
+static CreateFileDialogHelperFunc createFileDialogHelper = nullptr;
-#include "lxqtfiledialoghelper.h"
LXQtPlatformTheme::LXQtPlatformTheme():
iconFollowColorScheme_(true)
@@ -87,15 +93,15 @@
// as a fallback if a key is missing from the user config file ~/.config/lxqt/lxqt.conf.
// So we can customize the default values in /etc/xdg/lxqt/lxqt.conf and does
// not necessarily to hard code the default values here.
- QSettings settings(QSettings::UserScope, "lxqt", "lxqt");
+ QSettings settings(QSettings::UserScope, QLatin1String("lxqt"), QLatin1String("lxqt"));
settingsFile_ = settings.fileName();
// icon theme
- iconTheme_ = settings.value("icon_theme", "oxygen").toString();
- iconFollowColorScheme_ = settings.value("icon_follow_color_scheme", iconFollowColorScheme_).toBool();
+ iconTheme_ = settings.value(QLatin1String("icon_theme"), QLatin1String("oxygen")).toString();
+ iconFollowColorScheme_ = settings.value(QLatin1String("icon_follow_color_scheme"), iconFollowColorScheme_).toBool();
// read other widget related settings form LxQt settings.
- QByteArray tb_style = settings.value("tool_button_style").toByteArray();
+ QByteArray tb_style = settings.value(QLatin1String("tool_button_style")).toByteArray();
// convert toolbar style name to value
QMetaEnum me = QToolBar::staticMetaObject.property(QToolBar::staticMetaObject.indexOfProperty("toolButtonStyle")).enumerator();
int value = me.keyToValue(tb_style.constData());
@@ -105,7 +111,7 @@
toolButtonStyle_ = static_castQt::ToolButtonStyle(value);
// single click activation
- singleClickActivate_ = settings.value("single_click_activate").toBool();
+ singleClickActivate_ = settings.value(QLatin1String("single_click_activate")).toBool();
// load Qt settings
settings.beginGroup(QLatin1String("Qt"));
@@ -222,8 +228,32 @@
QPlatformDialogHelper *LXQtPlatformTheme::createPlatformDialogHelper(DialogType type) const {
if(type == FileDialog
&& qobject_cast(QCoreApplication::instance())) { // QML may not have qApp
- // use our own file dialog
- return new LXQtFileDialogHelper();
+ // use our own file dialog provided by libfm
+
+ // When a process has this environment set, that means glib event loop integration is disabled.
+ // In this case, libfm-qt just won't work. So let's disable the file dialog helper and return nullptr.
+ if(QString::fromLocal8Bit(qgetenv("QT_NO_GLIB")) == QLatin1String("1")) {
+ return nullptr;
+ }
+
+ // The createFileDialogHelper() method is dynamically loaded from libfm-qt on demand
+ if(createFileDialogHelper == nullptr) {
+ // try to dynamically load libfm-qt.so
+ QLibrary libfmQtLibrary{QLatin1String("libfm-qt")};
+ libfmQtLibrary.load();
+ if(!libfmQtLibrary.isLoaded()) {
+ return nullptr;
+ }
+
+ // try to resolve the symbol to get the function pointer
+ createFileDialogHelper = reinterpret_cast<CreateFileDialogHelperFunc>(libfmQtLibrary.resolve("createFileDialogHelper"));
+ if(!createFileDialogHelper) {
+ return nullptr;
+ }
+ }
+
+ // create a new file dialog helper provided by libfm
+ return createFileDialogHelper();
}
return nullptr;
}
@@ -277,7 +307,7 @@
case SystemIconThemeName:
return iconTheme_;
case SystemIconFallbackThemeName:
- return "hicolor";
+ return QLatin1String("hicolor");
case IconThemeSearchPaths:
return xdgIconThemePaths();
case StyleNames:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.13.0/src/lxqtsystemtrayicon.cpp new/lxqt-qtplugin-0.14.0/src/lxqtsystemtrayicon.cpp
--- old/lxqt-qtplugin-0.13.0/src/lxqtsystemtrayicon.cpp 2018-05-21 20:41:42.000000000 +0200
+++ new/lxqt-qtplugin-0.14.0/src/lxqtsystemtrayicon.cpp 2019-01-24 23:04:03.000000000 +0100
@@ -290,7 +290,7 @@
QPlatformMenuItem *menuItem = menu->createMenuItem();
menuItem->setParent(menu);
menuItem->setText(tr("Quit"));
- menuItem->setIcon(QIcon::fromTheme("application-exit"));
+ menuItem->setIcon(QIcon::fromTheme(QLatin1String("application-exit")));
connect(menuItem, &QPlatformMenuItem::activated, qApp, &QApplication::quit);
menu->insertMenuItem(menuItem, nullptr);
updateMenu(menu);
@@ -369,9 +369,9 @@
bool LXQtSystemTrayIcon::isSystemTrayAvailable() const
{
- QDBusInterface systrayHost("org.kde.StatusNotifierWatcher",
- "/StatusNotifierWatcher",
- "org.kde.StatusNotifierWatcher");
+ QDBusInterface systrayHost(QLatin1String("org.kde.StatusNotifierWatcher"),
+ QLatin1String("/StatusNotifierWatcher"),
+ QLatin1String("org.kde.StatusNotifierWatcher"));
return systrayHost.isValid() && systrayHost.property("IsStatusNotifierHostRegistered").toBool();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-qtplugin-0.13.0/src/statusnotifieritem/statusnotifieritem.cpp new/lxqt-qtplugin-0.14.0/src/statusnotifieritem/statusnotifieritem.cpp
--- old/lxqt-qtplugin-0.13.0/src/statusnotifieritem/statusnotifieritem.cpp 2018-05-21 20:41:42.000000000 +0200
+++ new/lxqt-qtplugin-0.14.0/src/statusnotifieritem/statusnotifieritem.cpp 2019-01-24 23:04:03.000000000 +0100
@@ -36,12 +36,12 @@
StatusNotifierItem::StatusNotifierItem(QString id, QObject *parent)
: QObject(parent),
mAdaptor(new StatusNotifierItemAdaptor(this)),
- mService(QString("org.freedesktop.StatusNotifierItem-%1-%2")
+ mService(QString::fromLatin1("org.freedesktop.StatusNotifierItem-%1-%2")
.arg(QCoreApplication::applicationPid())
.arg(++mServiceCounter)),
mId(id),
- mTitle("Test"),
- mStatus("Active"),
+ mTitle(QLatin1String("Test")),
+ mStatus(QLatin1String("Active")),
mMenu(nullptr),
mMenuExporter(nullptr),
mSessionBus(QDBusConnection::connectToBus(QDBusConnection::SessionBus, mService))
@@ -58,7 +58,7 @@
registerToHost();
// monitor the watcher service in case the host restarts
- QDBusServiceWatcher *watcher = new QDBusServiceWatcher("org.kde.StatusNotifierWatcher",
+ QDBusServiceWatcher *watcher = new QDBusServiceWatcher(QLatin1String("org.kde.StatusNotifierWatcher"),
mSessionBus,
QDBusServiceWatcher::WatchForOwnerChange,
this);
@@ -75,11 +75,11 @@
void StatusNotifierItem::registerToHost()
{
- QDBusInterface interface("org.kde.StatusNotifierWatcher",
- "/StatusNotifierWatcher",
- "org.kde.StatusNotifierWatcher",
+ QDBusInterface interface(QLatin1String("org.kde.StatusNotifierWatcher"),
+ QLatin1String("/StatusNotifierWatcher"),
+ QLatin1String("org.kde.StatusNotifierWatcher"),
mSessionBus);
- interface.asyncCall("RegisterStatusNotifierItem", mService);
+ interface.asyncCall(QLatin1String("RegisterStatusNotifierItem"), mService);
}
void StatusNotifierItem::onServiceOwnerChanged(const QString& service, const QString& oldOwner,
@@ -230,7 +230,7 @@
}
mMenu = menu;
- setMenuPath("/MenuBar");
+ setMenuPath(QLatin1String("/MenuBar"));
//Note: we need to destroy menu exporter before creating new one -> to free the DBus object path for new menu
delete mMenuExporter;
if (nullptr != mMenu)
@@ -242,16 +242,16 @@
void StatusNotifierItem::Activate(int x, int y)
{
- if (mStatus == "NeedsAttention")
- mStatus = "Active";
+ if (mStatus == QLatin1String("NeedsAttention"))
+ mStatus = QLatin1String("Active");
Q_EMIT activateRequested(QPoint(x, y));
}
void StatusNotifierItem::SecondaryActivate(int x, int y)
{
- if (mStatus == "NeedsAttention")
- mStatus = "Active";
+ if (mStatus == QLatin1String("NeedsAttention"))
+ mStatus = QLatin1String("Active");
Q_EMIT secondaryActivateRequested(QPoint(x, y));
}
@@ -270,7 +270,7 @@
void StatusNotifierItem::Scroll(int delta, const QString &orientation)
{
Qt::Orientation orient = Qt::Vertical;
- if (orientation.toLower() == "horizontal")
+ if (orientation.toLower() == QLatin1String("horizontal"))
orient = Qt::Horizontal;
Q_EMIT scrollRequested(delta, orient);
@@ -279,9 +279,9 @@
void StatusNotifierItem::showMessage(const QString& title, const QString& msg,
const QString& iconName, int secs)
{
- QDBusInterface interface("org.freedesktop.Notifications", "/org/freedesktop/Notifications",
- "org.freedesktop.Notifications", mSessionBus);
- interface.call("Notify", mTitle, (uint) 0, iconName, title,
+ QDBusInterface interface(QLatin1String("org.freedesktop.Notifications"), QLatin1String("/org/freedesktop/Notifications"),
+ QLatin1String("org.freedesktop.Notifications"), mSessionBus);
+ interface.call(QLatin1String("Notify"), mTitle, (uint) 0, iconName, title,
msg, QStringList(), QVariantMap(), secs);
}