fix #953 and some missing icon

This commit is contained in:
Martin Rotter 2023-05-11 09:01:25 +02:00
parent df7e9109b1
commit daf0ca4636
6 changed files with 44 additions and 15 deletions

View File

@ -554,7 +554,7 @@ void FormMain::setupIcons() {
IconFactory* icon_theme_factory = qApp->icons();
// Setup icons of this main window.
m_ui->m_actionDownloadManager->setIcon(icon_theme_factory->fromTheme(QSL("emblem-downloads")));
m_ui->m_actionDownloadManager->setIcon(icon_theme_factory->fromTheme(QSL("emblem-downloads"), QSL("download")));
m_ui->m_actionSettings->setIcon(icon_theme_factory->fromTheme(QSL("emblem-system"), QSL("applications-system")));
m_ui->m_actionQuit->setIcon(icon_theme_factory->fromTheme(QSL("application-exit")));
m_ui->m_actionRestart->setIcon(icon_theme_factory->fromTheme(QSL("view-refresh")));

View File

@ -74,7 +74,7 @@ void TabWidget::showDownloadManager() {
// Download manager is not opened. Create tab with it.
qApp->downloadManager()->setParent(this);
addTab(qApp->downloadManager(),
qApp->icons()->fromTheme(QSL("emblem-downloads")),
qApp->icons()->fromTheme(QSL("emblem-downloads"), QSL("download")),
tr("Downloads"),
TabBar::TabType::DownloadManager);
setCurrentIndex(count() - 1);

View File

@ -22,7 +22,8 @@ StatusBar::StatusBar(QWidget* parent) : QStatusBar(parent) {
m_barProgressFeeds->setVisible(false);
m_barProgressFeeds->setObjectName(QSL("m_barProgressFeeds"));
m_barProgressFeedsAction = new QAction(qApp->icons()->fromTheme(QSL("application-rss+xml")), tr("Feed update progress bar"), this);
m_barProgressFeedsAction =
new QAction(qApp->icons()->fromTheme(QSL("application-rss+xml")), tr("Feed update progress bar"), this);
m_barProgressFeedsAction->setObjectName(QSL("m_barProgressFeedsAction"));
m_barProgressDownload = new ProgressBarWithText(this);
@ -31,7 +32,9 @@ StatusBar::StatusBar(QWidget* parent) : QStatusBar(parent) {
m_barProgressDownload->setVisible(false);
m_barProgressDownload->setObjectName(QSL("m_barProgressDownload"));
m_barProgressDownloadAction = new QAction(qApp->icons()->fromTheme(QSL("emblem-downloads")), tr("File download progress bar"), this);
m_barProgressDownloadAction = new QAction(qApp->icons()->fromTheme(QSL("emblem-downloads"), QSL("download")),
tr("File download progress bar"),
this);
m_barProgressDownloadAction->setObjectName(QSL("m_barProgressDownloadAction"));
m_barProgressDownload->installEventFilter(this);
@ -46,8 +49,7 @@ QList<QAction*> StatusBar::availableActions() const {
QList<QAction*> actions = qApp->userActions();
// Now, add placeholder actions for custom stuff.
actions << m_barProgressDownloadAction
<< m_barProgressFeedsAction;
actions << m_barProgressDownloadAction << m_barProgressFeedsAction;
return actions;
}
@ -62,21 +64,24 @@ void StatusBar::saveAndSetActions(const QStringList& actions) {
}
QStringList StatusBar::defaultActions() const {
return QString(GUI::StatusbarActionsDef).split(',',
return QString(GUI::StatusbarActionsDef)
.split(',',
#if QT_VERSION >= 0x050F00 // Qt >= 5.15.0
Qt::SplitBehaviorFlags::SkipEmptyParts);
Qt::SplitBehaviorFlags::SkipEmptyParts);
#else
QString::SplitBehavior::SkipEmptyParts);
QString::SplitBehavior::SkipEmptyParts);
#endif
}
QStringList StatusBar::savedActions() const {
return qApp->settings()->value(GROUP(GUI),
SETTING(GUI::StatusbarActions)).toString().split(',',
return qApp->settings()
->value(GROUP(GUI), SETTING(GUI::StatusbarActions))
.toString()
.split(',',
#if QT_VERSION >= 0x050F00 // Qt >= 5.15.0
Qt::SplitBehaviorFlags::SkipEmptyParts);
Qt::SplitBehaviorFlags::SkipEmptyParts);
#else
QString::SplitBehavior::SkipEmptyParts);
QString::SplitBehavior::SkipEmptyParts);
#endif
}
@ -174,7 +179,8 @@ bool StatusBar::eventFilter(QObject* watched, QEvent* event) {
void StatusBar::clear() {
while (!actions().isEmpty()) {
QAction* act = actions().at(0);
QWidget* widget = act->property("widget").isValid() ? static_cast<QWidget*>(act->property("widget").value<void*>()) : nullptr;
QWidget* widget =
act->property("widget").isValid() ? static_cast<QWidget*>(act->property("widget").value<void*>()) : nullptr;
if (widget != nullptr) {
removeWidget(widget);

View File

@ -74,7 +74,8 @@ StandardFeedDetails::StandardFeedDetails(QWidget* parent) : QWidget(parent) {
new QAction(qApp->icons()->fromTheme(QSL("image-x-generic")), tr("Load icon from file..."), this);
m_actionUseDefaultIcon =
new QAction(qApp->icons()->fromTheme(QSL("application-rss+xml")), tr("Use default icon from icon theme"), this);
m_actionFetchIcon = new QAction(qApp->icons()->fromTheme(QSL("emblem-downloads")), tr("Fetch icon from feed"), this);
m_actionFetchIcon =
new QAction(qApp->icons()->fromTheme(QSL("emblem-downloads"), QSL("download")), tr("Fetch icon from feed"), this);
m_iconMenu->addAction(m_actionFetchIcon);
m_iconMenu->addAction(m_actionLoadIconFromFile);
m_iconMenu->addAction(m_actionUseDefaultIcon);

View File

@ -28,6 +28,12 @@ if(QT_VERSION_MAJOR EQUAL 6)
target_link_libraries(app PUBLIC
Qt${QT_VERSION_MAJOR}::Core5Compat
)
if(WIN32)
target_link_libraries(app PUBLIC
Qt${QT_VERSION_MAJOR}::GuiPrivate
)
endif()
endif()
if(APPLE)

View File

@ -11,6 +11,9 @@
#if defined(Q_OS_WIN)
#if QT_VERSION_MAJOR == 5
#include <QtPlatformHeaders/QWindowsWindowFunctions>
#else
#include <QWindow>
#include <QtGui/qpa/qplatformwindow_p.h>
#endif
#endif
@ -94,6 +97,9 @@ int main(int argc, char* argv[]) {
#if defined(Q_OS_WIN)
#if QT_VERSION_MAJOR == 5
QWindowsWindowFunctions::setHasBorderInFullScreenDefault(true);
// NOTE: https://github.com/martinrotter/rssguard/issues/953 for Qt 5.
QWindowsWindowFunctions::setWindowActivationBehavior(QWindowsWindowFunctions::AlwaysActivateWindow);
#endif
#endif
@ -114,5 +120,15 @@ int main(int argc, char* argv[]) {
qApp
->parseCmdArgumentsFromOtherInstance(qApp->cmdParser()->positionalArguments().join(QSL(ARGUMENTS_LIST_SEPARATOR)));
#if defined(Q_OS_WIN)
#if QT_VERSION_MAJOR == 6
// NOTE: Fixes https://github.com/martinrotter/rssguard/issues/953 for Qt 6.
using QWindowsWindow = QNativeInterface::Private::QWindowsWindow;
if (auto w_w = main_window.windowHandle()->nativeInterface<QWindowsWindow>()) {
w_w->setHasBorderInFullScreen(true);
}
#endif
#endif
return Application::exec();
}