From 75fdd81bad0ff2023ccfe6041d2485e20205138c Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Fri, 22 Mar 2024 10:46:43 +0100 Subject: [PATCH] fix #1318 --- CMakeLists.txt | 4 +-- src/librssguard/gui/dialogs/formabout.cpp | 35 +++++++++++++++---- src/librssguard/gui/dialogs/formabout.h | 1 + src/librssguard/gui/dialogs/formabout.ui | 32 ++++++++++++----- src/librssguard/gui/dialogs/formaddaccount.ui | 2 +- .../miscellaneous/pluginfactory.cpp | 20 ++++------- src/librssguard/miscellaneous/pluginfactory.h | 1 - 7 files changed, 63 insertions(+), 32 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 862e36c9a..bc1884189 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,7 +42,7 @@ # # Other information: # - supports Windows, Linux, *BSD, macOS, OS/2, Android, -# - Qt 5.12.0 or newer is required, +# - Qt 5.14.0 or newer is required, # - Qt 6.3.0 or newer is required, # - cmake 3.14.0 or newer is required, # - if you wish to make packages for Windows, then you must initialize all submodules @@ -133,7 +133,7 @@ option(MEDIAPLAYER_FORCE_OPENGL "Use opengl-based render API with libmpv." ON) # Import Qt libraries. set(QT6_MIN_VERSION 6.3.0) -set(QT5_MIN_VERSION 5.12.0) +set(QT5_MIN_VERSION 5.14.0) set(QT_COMPONENTS Core diff --git a/src/librssguard/gui/dialogs/formabout.cpp b/src/librssguard/gui/dialogs/formabout.cpp index ab37eb4fe..09d6c0a47 100644 --- a/src/librssguard/gui/dialogs/formabout.cpp +++ b/src/librssguard/gui/dialogs/formabout.cpp @@ -11,6 +11,7 @@ #include "miscellaneous/textfactory.h" #include "network-web/webfactory.h" +#include #include #include #include @@ -24,9 +25,13 @@ FormAbout::FormAbout(bool go_to_changelog, QWidget* parent) : QDialog(parent) { m_ui.setupUi(this); m_ui.m_lblIcon->setPixmap(QPixmap(APP_ICON_PATH)); + m_ui.m_btnCopyInfo->setIcon(qApp->icons()->fromTheme(QSL("edit-copy"))); GuiUtilities::applyDialogProperties(*this, qApp->icons()->fromTheme(QSL("help-about")), tr("About %1").arg(QSL(APP_NAME))); + + connect(m_ui.m_btnCopyInfo, &QPushButton::clicked, this, &FormAbout::copyInfoToClipboard); + loadLicenseAndInformation(); loadSettingsAndPaths(); @@ -37,6 +42,21 @@ FormAbout::FormAbout(bool go_to_changelog, QWidget* parent) : QDialog(parent) { FormAbout::~FormAbout() {} +void FormAbout::copyInfoToClipboard() { + auto* clip = QGuiApplication::clipboard(); + + if (clip != nullptr) { + clip->setText(m_ui.m_lblDesc->text().replace(QSL("
"), QSL("\n"))); + } + else { + qApp->showGuiMessage(Notification::Event::GeneralEvent, + GuiMessage(tr("Cannot copy"), + tr("Cannot copy info to clipboard."), + QSystemTrayIcon::MessageIcon::Critical), + GuiMessageDestination(true, true)); + } +} + void FormAbout::displayLicense() { m_ui.m_tbLicenses->setPlainText(m_ui.m_cbLicenses->currentData().toString()); } @@ -110,11 +130,13 @@ void FormAbout::loadLicenseAndInformation() { } // Set other informative texts. - m_ui.m_lblDesc->setText(tr("%8
" - "Version: %1 (built on %2/%3)
" - "Revision: %4
" - "Build date: %5
" - "Qt: %6 (compiled against %7)
") + m_ui.m_lblDesc->setTextFormat(Qt::TextFormat::MarkdownText); + m_ui.m_lblDesc->setText(tr("### %8
" + "**Version:** %1 (built on %2/%3)
" + "**Revision:** %4
" + "**Build date:** %5
" + "**OS:** %9
" + "**Qt:** %6 (compiled against %7)") .arg(qApp->applicationVersion(), QSL(APP_SYSTEM_NAME), QSL(APP_SYSTEM_VERSION), @@ -125,7 +147,8 @@ void FormAbout::loadLicenseAndInformation() { QLocale::FormatType::ShortFormat), qVersion(), QSL(QT_VERSION_STR), - QSL(APP_NAME))); + QSL(APP_NAME), + QSysInfo::prettyProductName())); m_ui.m_txtInfo->setText(tr("%5 is a (very) tiny feed reader." "

This software is distributed under the terms of GNU General " "Public License, version 3." diff --git a/src/librssguard/gui/dialogs/formabout.h b/src/librssguard/gui/dialogs/formabout.h index 4d289ca6f..7b34007a2 100644 --- a/src/librssguard/gui/dialogs/formabout.h +++ b/src/librssguard/gui/dialogs/formabout.h @@ -15,6 +15,7 @@ class RSSGUARD_DLLSPEC FormAbout : public QDialog { virtual ~FormAbout(); private slots: + void copyInfoToClipboard(); void displayLicense(); private: diff --git a/src/librssguard/gui/dialogs/formabout.ui b/src/librssguard/gui/dialogs/formabout.ui index ed0a4b74f..2eb084433 100644 --- a/src/librssguard/gui/dialogs/formabout.ui +++ b/src/librssguard/gui/dialogs/formabout.ui @@ -6,8 +6,8 @@ 0 0 - 727 - 446 + 562 + 373 @@ -18,11 +18,8 @@ - - - QFormLayout::AllNonFixedFieldsGrow - - + + @@ -56,7 +53,7 @@ - + @@ -84,6 +81,19 @@ + + + + + 0 + 0 + + + + &Copy info to clipboard + + + @@ -123,6 +133,9 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> p, li { white-space: pre-wrap; } +hr { height: 1px; border-width: 0; } +li.unchecked::marker { content: "\2610"; } +li.checked::marker { content: "\2612"; } </style></head><body style=" font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif';"><br /></p></body></html> @@ -179,6 +192,9 @@ p, li { white-space: pre-wrap; } <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><meta charset="utf-8" /><style type="text/css"> p, li { white-space: pre-wrap; } +hr { height: 1px; border-width: 0; } +li.unchecked::marker { content: "\2610"; } +li.checked::marker { content: "\2612"; } </style></head><body style=" font-family:'Segoe UI'; font-size:9pt; font-weight:400; font-style:normal;"> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif';"><br /></p></body></html> diff --git a/src/librssguard/gui/dialogs/formaddaccount.ui b/src/librssguard/gui/dialogs/formaddaccount.ui index f1f11f180..a7a5b8eb0 100644 --- a/src/librssguard/gui/dialogs/formaddaccount.ui +++ b/src/librssguard/gui/dialogs/formaddaccount.ui @@ -7,7 +7,7 @@ 0 0 405 - 409 + 305 diff --git a/src/librssguard/miscellaneous/pluginfactory.cpp b/src/librssguard/miscellaneous/pluginfactory.cpp index 123099408..797e9b5f2 100644 --- a/src/librssguard/miscellaneous/pluginfactory.cpp +++ b/src/librssguard/miscellaneous/pluginfactory.cpp @@ -15,7 +15,7 @@ PluginFactory::PluginFactory() {} QList PluginFactory::loadPlugins() const { QList plugins; - const QString plugin_name_wildcard = pluginNameWildCard() + pluginNameSuffix(); + const QString plugin_name_wildcard = pluginNameWildCard(); const auto plugins_paths = pluginPaths(); const auto backup_current_dir = QDir::currentPath(); @@ -23,7 +23,11 @@ QList PluginFactory::loadPlugins() const { QDirIterator dir_iter(plugin_folder, {plugin_name_wildcard}, QDir::Filter::Files, +#if !defined(NDEBUG) QDirIterator::IteratorFlag::Subdirectories); +#else + QDirIterator::IteratorFlag::NoIteratorFlags); +#endif while (dir_iter.hasNext()) { dir_iter.next(); @@ -74,18 +78,6 @@ QStringList PluginFactory::pluginPaths() const { return paths; } -QString PluginFactory::pluginNameSuffix() const { -#if defined(Q_OS_LINUX) - return QSL(".so"); -#elif defined(Q_OS_WIN) - return QSL(".dll"); -#elif defined(Q_OS_MACOS) - return QSL(".dylib"); -#else - return QSL(""); -#endif -} - QString PluginFactory::pluginNameWildCard() const { - return QSL("*rssguard-*"); + return QSL("*rssguard-*.*"); } diff --git a/src/librssguard/miscellaneous/pluginfactory.h b/src/librssguard/miscellaneous/pluginfactory.h index ae0686eed..382179da4 100644 --- a/src/librssguard/miscellaneous/pluginfactory.h +++ b/src/librssguard/miscellaneous/pluginfactory.h @@ -15,7 +15,6 @@ class PluginFactory { private: QStringList pluginPaths() const; - QString pluginNameSuffix() const; QString pluginNameWildCard() const; };