diff --git a/src/librssguard/gui/dialogs/formmain.cpp b/src/librssguard/gui/dialogs/formmain.cpp index f7994ec3a..cae44e62f 100644 --- a/src/librssguard/gui/dialogs/formmain.cpp +++ b/src/librssguard/gui/dialogs/formmain.cpp @@ -53,7 +53,8 @@ FormMain::FormMain(QWidget* parent, Qt::WindowFlags f) : QMainWindow(parent, f), m_ui(new Ui::FormMain), m_trayMenu(nullptr), m_statusBar(nullptr) { - qDebugNN << LOGSEC_GUI << "Creating main application form in thread:" << QUOTE_W_SPACE_DOT(QThread::currentThreadId()); + qDebugNN << LOGSEC_GUI + << "Creating main application form in thread:" << QUOTE_W_SPACE_DOT(QThread::currentThreadId()); m_ui->setupUi(this); qApp->setMainForm(this); @@ -148,10 +149,10 @@ void FormMain::showDbCleanupAssistant() { qApp->feedReader()->feedsModel()->reloadCountsOfWholeModel(); } else { - qApp->showGuiMessage(Notification::Event::GeneralEvent, { - tr("Cannot cleanup database"), - tr("Cannot cleanup database, because another critical action is running."), - QSystemTrayIcon::MessageIcon::Warning }); + qApp->showGuiMessage(Notification::Event::GeneralEvent, + {tr("Cannot cleanup database"), + tr("Cannot cleanup database, because another critical action is running."), + QSystemTrayIcon::MessageIcon::Warning}); } } @@ -298,25 +299,21 @@ void FormMain::updateAddItemMenu() { QList specific_root_actions = activated_root->addItemMenu(); if (activated_root->supportsCategoryAdding()) { - QAction* action_new_category = new QAction(qApp->icons()->fromTheme(QSL("folder")), - tr("Add new category"), - m_ui->m_menuAddItem); + QAction* action_new_category = + new QAction(qApp->icons()->fromTheme(QSL("folder")), tr("Add new category"), m_ui->m_menuAddItem); root_menu->addAction(action_new_category); - connect(action_new_category, &QAction::triggered, - activated_root, [activated_root]() { + connect(action_new_category, &QAction::triggered, activated_root, [activated_root]() { activated_root->addNewCategory(activated_root); }); } if (activated_root->supportsFeedAdding()) { - QAction* action_new_feed = new QAction(qApp->icons()->fromTheme(QSL("application-rss+xml")), - tr("Add new feed"), - m_ui->m_menuAddItem); + QAction* action_new_feed = + new QAction(qApp->icons()->fromTheme(QSL("application-rss+xml")), tr("Add new feed"), m_ui->m_menuAddItem); root_menu->addAction(action_new_feed); - connect(action_new_feed, &QAction::triggered, - activated_root, [activated_root]() { + connect(action_new_feed, &QAction::triggered, activated_root, [activated_root]() { activated_root->addNewFeed(activated_root); }); } @@ -356,17 +353,15 @@ void FormMain::updateRecycleBinMenu() { QList context_menu; if (bin == nullptr) { - QAction* no_action = new QAction(qApp->icons()->fromTheme(QSL("dialog-error")), - tr("No recycle bin"), - m_ui->m_menuRecycleBin); + QAction* no_action = + new QAction(qApp->icons()->fromTheme(QSL("dialog-error")), tr("No recycle bin"), m_ui->m_menuRecycleBin); no_action->setEnabled(false); root_menu->addAction(no_action); } else if ((context_menu = bin->contextMenuFeedsList()).isEmpty()) { - QAction* no_action = new QAction(qApp->icons()->fromTheme(QSL("dialog-error")), - tr("No actions possible"), - m_ui->m_menuRecycleBin); + QAction* no_action = + new QAction(qApp->icons()->fromTheme(QSL("dialog-error")), tr("No actions possible"), m_ui->m_menuRecycleBin); no_action->setEnabled(false); root_menu->addAction(no_action); @@ -399,9 +394,8 @@ void FormMain::updateAccountsMenu() { QList root_actions = activated_root->serviceMenu(); if (root_actions.isEmpty()) { - QAction* no_action = new QAction(qApp->icons()->fromTheme(QSL("dialog-error")), - tr("No possible actions"), - m_ui->m_menuAccounts); + QAction* no_action = + new QAction(qApp->icons()->fromTheme(QSL("dialog-error")), tr("No possible actions"), m_ui->m_menuAccounts); no_action->setEnabled(false); root_menu->addAction(no_action); @@ -440,15 +434,17 @@ void FormMain::onFeedUpdatesStarted() { } void FormMain::onFeedUpdatesProgress(const Feed* feed, int current, int total) { - statusBar()->showProgressFeeds(int((current * 100.0) / total), - feed->sanitizedTitle()); + statusBar()->showProgressFeeds(int((current * 100.0) / total), feed->sanitizedTitle()); } void FormMain::updateMessageButtonsAvailability() { - const bool one_message_selected = tabWidget()->feedMessageViewer()->messagesView()->selectionModel()->selectedRows().size() == 1; - const bool atleast_one_message_selected = !tabWidget()->feedMessageViewer()->messagesView()->selectionModel()->selectedRows().isEmpty(); - const bool bin_loaded = tabWidget()->feedMessageViewer()->messagesView()->sourceModel()->loadedItem() != nullptr - && tabWidget()->feedMessageViewer()->messagesView()->sourceModel()->loadedItem()->kind() == RootItem::Kind::Bin; + const bool one_message_selected = + tabWidget()->feedMessageViewer()->messagesView()->selectionModel()->selectedRows().size() == 1; + const bool atleast_one_message_selected = + !tabWidget()->feedMessageViewer()->messagesView()->selectionModel()->selectedRows().isEmpty(); + const bool bin_loaded = + tabWidget()->feedMessageViewer()->messagesView()->sourceModel()->loadedItem() != nullptr && + tabWidget()->feedMessageViewer()->messagesView()->sourceModel()->loadedItem()->kind() == RootItem::Kind::Bin; m_ui->m_actionDeleteSelectedMessages->setEnabled(atleast_one_message_selected); m_ui->m_actionRestoreSelectedMessages->setEnabled(atleast_one_message_selected && bin_loaded); @@ -483,7 +479,8 @@ void FormMain::updateFeedButtonsAvailability() { m_ui->m_actionMarkSelectedItemsAsUnread->setEnabled(anything_selected); m_ui->m_actionUpdateAllItems->setEnabled(!critical_action_running); m_ui->m_actionUpdateSelectedItemsWithCustomTimers->setEnabled(!critical_action_running); - m_ui->m_actionUpdateSelectedItems->setEnabled(!critical_action_running && (feed_selected || category_selected || service_selected)); + m_ui->m_actionUpdateSelectedItems->setEnabled(!critical_action_running && + (feed_selected || category_selected || service_selected)); m_ui->m_actionViewSelectedItemsNewspaperMode->setEnabled(anything_selected); m_ui->m_actionExpandCollapseItem->setEnabled(category_selected || service_selected); m_ui->m_actionExpandCollapseItemRecursively->setEnabled(category_selected || service_selected); @@ -495,10 +492,11 @@ void FormMain::updateFeedButtonsAvailability() { m_ui->m_menuAccounts->setEnabled(!critical_action_running); m_ui->m_menuRecycleBin->setEnabled(!critical_action_running); - m_ui->m_actionFeedMoveUp->setEnabled(manual_feed_sort &&(feed_selected || category_selected || service_selected)); - m_ui->m_actionFeedMoveDown->setEnabled(manual_feed_sort &&(feed_selected || category_selected || service_selected)); - m_ui->m_actionFeedMoveTop->setEnabled(manual_feed_sort &&(feed_selected || category_selected || service_selected)); - m_ui->m_actionFeedMoveBottom->setEnabled(manual_feed_sort &&(feed_selected || category_selected || service_selected)); + m_ui->m_actionFeedMoveUp->setEnabled(manual_feed_sort && (feed_selected || category_selected || service_selected)); + m_ui->m_actionFeedMoveDown->setEnabled(manual_feed_sort && (feed_selected || category_selected || service_selected)); + m_ui->m_actionFeedMoveTop->setEnabled(manual_feed_sort && (feed_selected || category_selected || service_selected)); + m_ui->m_actionFeedMoveBottom->setEnabled(manual_feed_sort && + (feed_selected || category_selected || service_selected)); } void FormMain::switchVisibility(bool force_hide) { @@ -506,10 +504,10 @@ void FormMain::switchVisibility(bool force_hide) { if (SystemTrayIcon::isSystemTrayDesired() && SystemTrayIcon::isSystemTrayAreaAvailable()) { if (QApplication::activeModalWidget() != nullptr) { - qApp->showGuiMessage(Notification::Event::GeneralEvent, { - tr("Close dialogs"), - tr("Close opened modal dialogs first."), - QSystemTrayIcon::MessageIcon::Warning }); + qApp->showGuiMessage(Notification::Event::GeneralEvent, + {tr("Close dialogs"), + tr("Close opened modal dialogs first."), + QSystemTrayIcon::MessageIcon::Warning}); } else { hide(); @@ -572,7 +570,8 @@ void FormMain::setupIcons() { m_ui->m_actionStopRunningItemsUpdate->setIcon(icon_theme_factory->fromTheme(QSL("process-stop"))); m_ui->m_actionUpdateAllItems->setIcon(icon_theme_factory->fromTheme(QSL("download"), QSL("browser-download"))); m_ui->m_actionUpdateSelectedItems->setIcon(icon_theme_factory->fromTheme(QSL("download"), QSL("browser-download"))); - m_ui->m_actionUpdateSelectedItemsWithCustomTimers->setIcon(icon_theme_factory->fromTheme(QSL("download"), QSL("browser-download"))); + m_ui->m_actionUpdateSelectedItemsWithCustomTimers->setIcon(icon_theme_factory->fromTheme(QSL("download"), + QSL("browser-download"))); m_ui->m_actionClearSelectedItems->setIcon(icon_theme_factory->fromTheme(QSL("mail-mark-junk"))); m_ui->m_actionClearAllItems->setIcon(icon_theme_factory->fromTheme(QSL("mail-mark-junk"))); m_ui->m_actionDeleteSelectedItem->setIcon(icon_theme_factory->fromTheme(QSL("list-remove"))); @@ -654,7 +653,8 @@ void FormMain::loadSize() { qApp->processEvents(); } - m_ui->m_actionMessagePreviewEnabled->setChecked(settings->value(GROUP(Messages), SETTING(Messages::EnableMessagePreview)).toBool()); + m_ui->m_actionMessagePreviewEnabled + ->setChecked(settings->value(GROUP(Messages), SETTING(Messages::EnableMessagePreview)).toBool()); // If user exited the application while in fullsreen mode, // then re-enable it now. @@ -669,20 +669,20 @@ void FormMain::loadSize() { m_ui->m_tabWidget->feedMessageViewer()->loadSize(); m_ui->m_actionSwitchToolBars->setChecked(settings->value(GROUP(GUI), SETTING(GUI::ToolbarsVisible)).toBool()); m_ui->m_actionSwitchListHeaders->setChecked(settings->value(GROUP(GUI), SETTING(GUI::ListHeadersVisible)).toBool()); - m_ui->m_actionSwitchMessageViewerToolbars->setChecked(settings->value(GROUP(GUI), SETTING(GUI::MessageViewerToolbarsVisible)).toBool()); + m_ui->m_actionSwitchMessageViewerToolbars + ->setChecked(settings->value(GROUP(GUI), SETTING(GUI::MessageViewerToolbarsVisible)).toBool()); m_ui->m_actionSwitchStatusBar->setChecked(settings->value(GROUP(GUI), SETTING(GUI::StatusBarVisible)).toBool()); // Other startup GUI-related settings. - m_ui->m_actionSortFeedsAlphabetically->setChecked(settings->value(GROUP(Feeds), - SETTING(Feeds::SortAlphabetically)).toBool()); - m_ui->m_actionShowOnlyUnreadItems->setChecked(settings->value(GROUP(Feeds), - SETTING(Feeds::ShowOnlyUnreadFeeds)).toBool()); - m_ui->m_actionShowTreeBranches->setChecked(settings->value(GROUP(Feeds), - SETTING(Feeds::ShowTreeBranches)).toBool()); - m_ui->m_actionAutoExpandItemsWhenSelected->setChecked(settings->value(GROUP(Feeds), - SETTING(Feeds::AutoExpandOnSelection)).toBool()); - m_ui->m_actionAlternateColorsInLists->setChecked(settings->value(GROUP(GUI), - SETTING(GUI::AlternateRowColorsInLists)).toBool()); + m_ui->m_actionSortFeedsAlphabetically + ->setChecked(settings->value(GROUP(Feeds), SETTING(Feeds::SortAlphabetically)).toBool()); + m_ui->m_actionShowOnlyUnreadItems + ->setChecked(settings->value(GROUP(Feeds), SETTING(Feeds::ShowOnlyUnreadFeeds)).toBool()); + m_ui->m_actionShowTreeBranches->setChecked(settings->value(GROUP(Feeds), SETTING(Feeds::ShowTreeBranches)).toBool()); + m_ui->m_actionAutoExpandItemsWhenSelected + ->setChecked(settings->value(GROUP(Feeds), SETTING(Feeds::AutoExpandOnSelection)).toBool()); + m_ui->m_actionAlternateColorsInLists + ->setChecked(settings->value(GROUP(GUI), SETTING(GUI::AlternateRowColorsInLists)).toBool()); } void FormMain::saveSize() { @@ -734,8 +734,10 @@ void FormMain::createConnections() { connect(m_ui->m_actionRestart, &QAction::triggered, qApp, &Application::restart); // Menu "View" connections. - connect(m_ui->m_actionSwitchFeedsList, &QAction::toggled, - tabWidget()->feedMessageViewer(), &FeedMessageViewer::switchFeedComponentVisibility); + connect(m_ui->m_actionSwitchFeedsList, + &QAction::toggled, + tabWidget()->feedMessageViewer(), + &FeedMessageViewer::switchFeedComponentVisibility); connect(m_ui->m_actionFullscreen, &QAction::toggled, this, &FormMain::switchFullscreenMode); connect(m_ui->m_actionSwitchMainMenu, &QAction::toggled, m_ui->m_menuBar, &QMenuBar::setVisible); connect(m_ui->m_actionSwitchMainWindow, &QAction::triggered, this, &FormMain::switchVisibility); @@ -765,131 +767,228 @@ void FormMain::createConnections() { // Tab widget connections. connect(m_ui->m_actionTabsNext, &QAction::triggered, m_ui->m_tabWidget, &TabWidget::gotoNextTab); connect(m_ui->m_actionTabsPrevious, &QAction::triggered, m_ui->m_tabWidget, &TabWidget::gotoPreviousTab); - connect(m_ui->m_actionTabsCloseAllExceptCurrent, &QAction::triggered, m_ui->m_tabWidget, &TabWidget::closeAllTabsExceptCurrent); + connect(m_ui->m_actionTabsCloseAllExceptCurrent, + &QAction::triggered, + m_ui->m_tabWidget, + &TabWidget::closeAllTabsExceptCurrent); connect(m_ui->m_actionTabsCloseAll, &QAction::triggered, m_ui->m_tabWidget, &TabWidget::closeAllTabs); connect(m_ui->m_actionTabsCloseCurrent, &QAction::triggered, m_ui->m_tabWidget, &TabWidget::closeCurrentTab); connect(m_ui->m_actionTabNewWebBrowser, &QAction::triggered, m_ui->m_tabWidget, &TabWidget::addEmptyBrowser); - connect(tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::itemSelected, this, &FormMain::updateFeedButtonsAvailability); + connect(tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::itemSelected, + this, + &FormMain::updateFeedButtonsAvailability); connect(qApp->feedUpdateLock(), &Mutex::locked, this, &FormMain::updateFeedButtonsAvailability); connect(qApp->feedUpdateLock(), &Mutex::unlocked, this, &FormMain::updateFeedButtonsAvailability); - connect(tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::currentMessageRemoved, - this, &FormMain::updateMessageButtonsAvailability); - connect(tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::currentMessageChanged, - this, &FormMain::updateMessageButtonsAvailability); + connect(tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::currentMessageRemoved, + this, + &FormMain::updateMessageButtonsAvailability); + connect(tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::currentMessageChanged, + this, + &FormMain::updateMessageButtonsAvailability); connect(tabWidget(), &TabWidget::currentChanged, this, &FormMain::updateTabsButtonsAvailability); connect(qApp->feedReader(), &FeedReader::feedUpdatesStarted, this, &FormMain::onFeedUpdatesStarted); connect(qApp->feedReader(), &FeedReader::feedUpdatesProgress, this, &FormMain::onFeedUpdatesProgress); connect(qApp->feedReader(), &FeedReader::feedUpdatesFinished, this, &FormMain::onFeedUpdatesFinished); // Toolbar forwardings. - connect(m_ui->m_actionAddFeedIntoSelectedItem, &QAction::triggered, - tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::addFeedIntoSelectedAccount); - connect(m_ui->m_actionAddCategoryIntoSelectedItem, &QAction::triggered, - tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::addCategoryIntoSelectedAccount); + connect(m_ui->m_actionAddFeedIntoSelectedItem, + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::addFeedIntoSelectedAccount); + connect(m_ui->m_actionAddCategoryIntoSelectedItem, + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::addCategoryIntoSelectedAccount); connect(m_ui->m_actionSwitchImportanceOfSelectedMessages, - &QAction::triggered, tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::switchSelectedMessagesImportance); + &QAction::triggered, + tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::switchSelectedMessagesImportance); connect(m_ui->m_actionDeleteSelectedMessages, - &QAction::triggered, tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::deleteSelectedMessages); + &QAction::triggered, + tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::deleteSelectedMessages); connect(m_ui->m_actionMarkSelectedMessagesAsRead, - &QAction::triggered, tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::markSelectedMessagesRead); - connect(m_ui->m_actionMarkSelectedMessagesAsUnread, &QAction::triggered, - tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::markSelectedMessagesUnread); + &QAction::triggered, + tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::markSelectedMessagesRead); + connect(m_ui->m_actionMarkSelectedMessagesAsUnread, + &QAction::triggered, + tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::markSelectedMessagesUnread); connect(m_ui->m_actionOpenSelectedSourceArticlesExternally, - &QAction::triggered, tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::openSelectedSourceMessagesExternally); + &QAction::triggered, + tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::openSelectedSourceMessagesExternally); connect(m_ui->m_actionOpenSelectedMessagesInternally, - &QAction::triggered, tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::openSelectedMessagesInternally); + &QAction::triggered, + tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::openSelectedMessagesInternally); connect(m_ui->m_actionOpenSelectedMessagesInternallyNoTab, - &QAction::triggered, tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::openSelectedMessageUrl); + &QAction::triggered, + tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::openSelectedMessageUrl); connect(m_ui->m_actionSendMessageViaEmail, - &QAction::triggered, tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::sendSelectedMessageViaEmail); + &QAction::triggered, + tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::sendSelectedMessageViaEmail); connect(m_ui->m_actionMarkAllItemsRead, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::markAllItemsRead); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::markAllItemsRead); connect(m_ui->m_actionMarkSelectedItemsAsRead, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::markSelectedItemRead); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::markSelectedItemRead); connect(m_ui->m_actionExpandCollapseItem, &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), [this]() { - tabWidget()->feedMessageViewer()->feedsView()->expandCollapseCurrentItem(false); - }); + tabWidget()->feedMessageViewer()->feedsView()->expandCollapseCurrentItem(false); + }); connect(m_ui->m_actionExpandCollapseItemRecursively, &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), [this]() { - tabWidget()->feedMessageViewer()->feedsView()->expandCollapseCurrentItem(true); - }); + tabWidget()->feedMessageViewer()->feedsView()->expandCollapseCurrentItem(true); + }); connect(m_ui->m_actionMarkSelectedItemsAsUnread, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::markSelectedItemUnread); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::markSelectedItemUnread); connect(m_ui->m_actionClearSelectedItems, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::clearSelectedFeeds); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::clearSelectedFeeds); connect(m_ui->m_actionClearAllItems, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::clearAllFeeds); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::clearAllFeeds); connect(m_ui->m_actionUpdateSelectedItems, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::updateSelectedItems); - connect(m_ui->m_actionUpdateAllItems, - &QAction::triggered, qApp->feedReader(), &FeedReader::updateAllFeeds); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::updateSelectedItems); + connect(m_ui->m_actionUpdateAllItems, &QAction::triggered, qApp->feedReader(), &FeedReader::updateAllFeeds); connect(m_ui->m_actionUpdateSelectedItemsWithCustomTimers, - &QAction::triggered, qApp->feedReader(), &FeedReader::updateManuallyIntervaledFeeds); + &QAction::triggered, + qApp->feedReader(), + &FeedReader::updateManuallyIntervaledFeeds); connect(m_ui->m_actionStopRunningItemsUpdate, - &QAction::triggered, qApp->feedReader(), &FeedReader::stopRunningFeedUpdate); + &QAction::triggered, + qApp->feedReader(), + &FeedReader::stopRunningFeedUpdate); connect(m_ui->m_actionCopyUrlSelectedFeed, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::copyUrlOfSelectedFeeds); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::copyUrlOfSelectedFeeds); connect(m_ui->m_actionCopyUrlSelectedArticles, - &QAction::triggered, tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::copyUrlOfSelectedArticles); + &QAction::triggered, + tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::copyUrlOfSelectedArticles); connect(m_ui->m_actionEditSelectedItem, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::editSelectedItem); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::editSelectedItem); connect(m_ui->m_actionViewSelectedItemsNewspaperMode, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::openSelectedItemsInNewspaperMode); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::openSelectedItemsInNewspaperMode); connect(m_ui->m_actionDeleteSelectedItem, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::deleteSelectedItem); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::deleteSelectedItem); connect(m_ui->m_actionSelectNextItem, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::selectNextItem); - connect(m_ui->m_actionSwitchToolBars, &QAction::toggled, - tabWidget()->feedMessageViewer(), &FeedMessageViewer::setToolBarsEnabled); - connect(m_ui->m_actionSwitchListHeaders, &QAction::toggled, - tabWidget()->feedMessageViewer(), &FeedMessageViewer::setListHeadersEnabled); - connect(m_ui->m_actionSwitchMessageViewerToolbars, &QAction::toggled, - tabWidget()->feedMessageViewer()->messagesBrowser(), &MessagePreviewer::setToolbarsVisible); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::selectNextItem); + connect(m_ui->m_actionSwitchToolBars, + &QAction::toggled, + tabWidget()->feedMessageViewer(), + &FeedMessageViewer::setToolBarsEnabled); + connect(m_ui->m_actionSwitchListHeaders, + &QAction::toggled, + tabWidget()->feedMessageViewer(), + &FeedMessageViewer::setListHeadersEnabled); + connect(m_ui->m_actionSwitchMessageViewerToolbars, + &QAction::toggled, + tabWidget()->feedMessageViewer()->messagesBrowser(), + &MessagePreviewer::setToolbarsVisible); connect(m_ui->m_actionSelectPreviousItem, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::selectPreviousItem); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::selectPreviousItem); connect(m_ui->m_actionSelectNextMessage, - &QAction::triggered, tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::selectNextItem); + &QAction::triggered, + tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::selectNextItem); connect(m_ui->m_actionSelectNextUnreadMessage, - &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::selectNextUnreadItem); + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::selectNextUnreadItem); connect(m_ui->m_actionSelectPreviousMessage, - &QAction::triggered, tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::selectPreviousItem); - connect(m_ui->m_actionSwitchMessageListOrientation, &QAction::triggered, - tabWidget()->feedMessageViewer(), &FeedMessageViewer::switchMessageSplitterOrientation); - connect(m_ui->m_actionShowOnlyUnreadItems, &QAction::toggled, - tabWidget()->feedMessageViewer(), &FeedMessageViewer::toggleShowOnlyUnreadFeeds); - connect(m_ui->m_actionSortFeedsAlphabetically, &QAction::toggled, - tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::toggleFeedSortingMode); - connect(m_ui->m_actionShowTreeBranches, &QAction::toggled, - tabWidget()->feedMessageViewer(), &FeedMessageViewer::toggleShowFeedTreeBranches); - connect(m_ui->m_actionAutoExpandItemsWhenSelected, &QAction::toggled, - tabWidget()->feedMessageViewer(), &FeedMessageViewer::toggleItemsAutoExpandingOnSelection); - connect(m_ui->m_actionAlternateColorsInLists, &QAction::toggled, - tabWidget()->feedMessageViewer(), &FeedMessageViewer::alternateRowColorsInLists); - connect(m_ui->m_actionRestoreSelectedMessages, &QAction::triggered, - tabWidget()->feedMessageViewer()->messagesView(), &MessagesView::restoreSelectedMessages); - connect(m_ui->m_actionRestoreAllRecycleBins, &QAction::triggered, - tabWidget()->feedMessageViewer()->feedsView()->sourceModel(), &FeedsModel::restoreAllBins); - connect(m_ui->m_actionEmptyAllRecycleBins, &QAction::triggered, - tabWidget()->feedMessageViewer()->feedsView()->sourceModel(), &FeedsModel::emptyAllBins); + &QAction::triggered, + tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::selectPreviousItem); + connect(m_ui->m_actionSwitchMessageListOrientation, + &QAction::triggered, + tabWidget()->feedMessageViewer(), + &FeedMessageViewer::switchMessageSplitterOrientation); + connect(m_ui->m_actionShowOnlyUnreadItems, + &QAction::toggled, + tabWidget()->feedMessageViewer(), + &FeedMessageViewer::toggleShowOnlyUnreadFeeds); + connect(m_ui->m_actionSortFeedsAlphabetically, + &QAction::toggled, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::toggleFeedSortingMode); + connect(m_ui->m_actionShowTreeBranches, + &QAction::toggled, + tabWidget()->feedMessageViewer(), + &FeedMessageViewer::toggleShowFeedTreeBranches); + connect(m_ui->m_actionAutoExpandItemsWhenSelected, + &QAction::toggled, + tabWidget()->feedMessageViewer(), + &FeedMessageViewer::toggleItemsAutoExpandingOnSelection); + connect(m_ui->m_actionAlternateColorsInLists, + &QAction::toggled, + tabWidget()->feedMessageViewer(), + &FeedMessageViewer::alternateRowColorsInLists); + connect(m_ui->m_actionRestoreSelectedMessages, + &QAction::triggered, + tabWidget()->feedMessageViewer()->messagesView(), + &MessagesView::restoreSelectedMessages); + connect(m_ui->m_actionRestoreAllRecycleBins, + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView()->sourceModel(), + &FeedsModel::restoreAllBins); + connect(m_ui->m_actionEmptyAllRecycleBins, + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView()->sourceModel(), + &FeedsModel::emptyAllBins); connect(m_ui->m_actionMessageFilters, &QAction::triggered, this, [this]() { qApp->feedReader()->showMessageFiltersManager(); tabWidget()->feedMessageViewer()->messagesView()->reloadSelections(); }); - connect(m_ui->m_actionFeedMoveUp, &QAction::triggered, - tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::moveSelectedItemUp); - connect(m_ui->m_actionFeedMoveDown, &QAction::triggered, - tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::moveSelectedItemDown); - connect(m_ui->m_actionFeedMoveTop, &QAction::triggered, - tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::moveSelectedItemTop); - connect(m_ui->m_actionFeedMoveBottom, &QAction::triggered, - tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::moveSelectedItemBottom); + connect(m_ui->m_actionFeedMoveUp, + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::moveSelectedItemUp); + connect(m_ui->m_actionFeedMoveDown, + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::moveSelectedItemDown); + connect(m_ui->m_actionFeedMoveTop, + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::moveSelectedItemTop); + connect(m_ui->m_actionFeedMoveBottom, + &QAction::triggered, + tabWidget()->feedMessageViewer()->feedsView(), + &FeedsView::moveSelectedItemBottom); } void FormMain::backupDatabaseSettings() { @@ -912,8 +1011,7 @@ void FormMain::changeEvent(QEvent* event) { switch (event->type()) { case QEvent::Type::WindowStateChange: { if ((windowState() & Qt::WindowState::WindowMinimized) == Qt::WindowState::WindowMinimized && - SystemTrayIcon::isSystemTrayDesired() && - SystemTrayIcon::isSystemTrayAreaAvailable() && + SystemTrayIcon::isSystemTrayDesired() && SystemTrayIcon::isSystemTrayAreaAvailable() && qApp->settings()->value(GROUP(GUI), SETTING(GUI::HideMainWindowWhenMinimized)).toBool()) { event->ignore(); QTimer::singleShot(CHANGE_EVENT_DELAY, this, [this]() { diff --git a/src/librssguard/gui/settings/settingsfeedsmessages.cpp b/src/librssguard/gui/settings/settingsfeedsmessages.cpp index ddc3f2d69..bdc743949 100644 --- a/src/librssguard/gui/settings/settingsfeedsmessages.cpp +++ b/src/librssguard/gui/settings/settingsfeedsmessages.cpp @@ -24,17 +24,20 @@ SettingsFeedsMessages::SettingsFeedsMessages(Settings* settings, QWidget* parent initializeMessageDateFormats(); - m_ui->m_helpCountsFeedsFormat->setHelpText(tr("Enter format for count of articles displayed next to each " - "feed/category in feed list. Use \"%all\" and \"%unread\" strings " - "which are placeholders for the actual count of all (or unread) articles."), - false); + m_ui->m_helpCountsFeedsFormat + ->setHelpText(tr("Enter format for count of articles displayed next to each " + "feed/category in feed list. Use \"%all\" and \"%unread\" strings " + "which are placeholders for the actual count of all (or unread) articles."), + false); m_ui->m_helpMultilineArticleList->setHelpText(tr("Note that enabling this might have drastic consequences on " "performance of article list with big number of articles."), true); connect(m_ui->m_cbShowEnclosuresDirectly, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); - connect(m_ui->m_spinHeightImageAttachments, static_cast(&QSpinBox::valueChanged), - this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_spinHeightImageAttachments, + static_cast(&QSpinBox::valueChanged), + this, + &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_spinRelativeArticleTime, QOverload::of(&QSpinBox::valueChanged), this, [=](int value) { if (value <= 0) { @@ -45,6 +48,15 @@ SettingsFeedsMessages::SettingsFeedsMessages(Settings* settings, QWidget* parent } }); + connect(m_ui->m_spinHeightImageAttachments, QOverload::of(&QSpinBox::valueChanged), this, [=](int value) { + if (value <= 0) { + m_ui->m_spinHeightImageAttachments->setSuffix(QSL(" px") + tr(" = unchanged size")); + } + else { + m_ui->m_spinHeightImageAttachments->setSuffix(QSL(" px")); + } + }); + connect(m_ui->m_cbListsRestrictedShortcuts, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_cmbIgnoreContentsChanges, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_cbHideCountsIfNoUnread, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); @@ -54,60 +66,96 @@ SettingsFeedsMessages::SettingsFeedsMessages(Settings* settings, QWidget* parent connect(m_ui->m_checkKeppMessagesInTheMiddle, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_checkMessagesDateTimeFormat, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); - connect(m_ui->m_checkMessagesDateTimeFormat, &QCheckBox::toggled, m_ui->m_cmbMessagesDateTimeFormat, &QComboBox::setEnabled); + connect(m_ui->m_checkMessagesDateTimeFormat, + &QCheckBox::toggled, + m_ui->m_cmbMessagesDateTimeFormat, + &QComboBox::setEnabled); connect(m_ui->m_checkMessagesTimeFormat, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_checkMessagesTimeFormat, &QCheckBox::toggled, m_ui->m_cmbMessagesTimeFormat, &QComboBox::setEnabled); connect(m_ui->m_checkRemoveReadMessagesOnExit, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); - connect(m_ui->m_checkBringToForegroundAfterMsgOpened, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_checkBringToForegroundAfterMsgOpened, + &QCheckBox::toggled, + this, + &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_checkUpdateAllFeedsOnStartup, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); - connect(m_ui->m_spinAutoUpdateInterval, static_cast(&QDoubleSpinBox::valueChanged), - this, &SettingsFeedsMessages::dirtifySettings); - connect(m_ui->m_spinStartupUpdateDelay, static_cast(&QDoubleSpinBox::valueChanged), - this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_spinAutoUpdateInterval, + static_cast(&QDoubleSpinBox::valueChanged), + this, + &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_spinStartupUpdateDelay, + static_cast(&QDoubleSpinBox::valueChanged), + this, + &SettingsFeedsMessages::dirtifySettings); - connect(m_ui->m_spinHeightRowsMessages, static_cast(&QSpinBox::valueChanged), - this, &SettingsFeedsMessages::dirtifySettings); - connect(m_ui->m_spinHeightRowsMessages, static_cast(&QSpinBox::valueChanged), - this, &SettingsFeedsMessages::requireRestart); + connect(m_ui->m_spinHeightRowsMessages, + static_cast(&QSpinBox::valueChanged), + this, + &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_spinHeightRowsMessages, + static_cast(&QSpinBox::valueChanged), + this, + &SettingsFeedsMessages::requireRestart); - connect(m_ui->m_spinHeightRowsFeeds, static_cast(&QSpinBox::valueChanged), - this, &SettingsFeedsMessages::dirtifySettings); - connect(m_ui->m_spinHeightRowsFeeds, static_cast(&QSpinBox::valueChanged), - this, &SettingsFeedsMessages::requireRestart); + connect(m_ui->m_spinHeightRowsFeeds, + static_cast(&QSpinBox::valueChanged), + this, + &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_spinHeightRowsFeeds, + static_cast(&QSpinBox::valueChanged), + this, + &SettingsFeedsMessages::requireRestart); - connect(m_ui->m_spinPaddingRowsMessages, static_cast(&QSpinBox::valueChanged), - this, &SettingsFeedsMessages::dirtifySettings); - connect(m_ui->m_spinPaddingRowsMessages, static_cast(&QSpinBox::valueChanged), - this, &SettingsFeedsMessages::requireRestart); + connect(m_ui->m_spinPaddingRowsMessages, + static_cast(&QSpinBox::valueChanged), + this, + &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_spinPaddingRowsMessages, + static_cast(&QSpinBox::valueChanged), + this, + &SettingsFeedsMessages::requireRestart); - connect(m_ui->m_spinRelativeArticleTime, static_cast(&QSpinBox::valueChanged), - this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_spinRelativeArticleTime, + static_cast(&QSpinBox::valueChanged), + this, + &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_checkAutoUpdate, &QCheckBox::toggled, m_ui->m_spinAutoUpdateInterval, &TimeSpinBox::setEnabled); - connect(m_ui->m_checkUpdateAllFeedsOnStartup, &QCheckBox::toggled, m_ui->m_spinStartupUpdateDelay, &TimeSpinBox::setEnabled); - connect(m_ui->m_spinFeedUpdateTimeout, static_cast(&QSpinBox::valueChanged), this, + connect(m_ui->m_checkUpdateAllFeedsOnStartup, + &QCheckBox::toggled, + m_ui->m_spinStartupUpdateDelay, + &TimeSpinBox::setEnabled); + connect(m_ui->m_spinFeedUpdateTimeout, + static_cast(&QSpinBox::valueChanged), + this, &SettingsFeedsMessages::dirtifySettings); - connect(m_ui->m_cmbMessagesDateTimeFormat, &QComboBox::currentTextChanged, this, - &SettingsFeedsMessages::dirtifySettings); - connect(m_ui->m_cmbMessagesTimeFormat, &QComboBox::currentTextChanged, this, + connect(m_ui->m_cmbMessagesDateTimeFormat, + &QComboBox::currentTextChanged, + this, &SettingsFeedsMessages::dirtifySettings); + connect(m_ui->m_cmbMessagesTimeFormat, &QComboBox::currentTextChanged, this, &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_cbFixupArticleDatetime, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_cmbCountsFeedList, &QComboBox::currentTextChanged, this, &SettingsFeedsMessages::dirtifySettings); - connect(m_ui->m_cmbCountsFeedList, static_cast(&QComboBox::currentIndexChanged), this, + connect(m_ui->m_cmbCountsFeedList, + static_cast(&QComboBox::currentIndexChanged), + this, &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_checkShowTooltips, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_checkMultilineArticleList, &QCheckBox::toggled, this, &SettingsFeedsMessages::dirtifySettings); connect(m_ui->m_checkMultilineArticleList, &QCheckBox::toggled, this, &SettingsFeedsMessages::requireRestart); - connect(m_ui->m_cmbMessagesDateTimeFormat, &QComboBox::currentTextChanged, - this, &SettingsFeedsMessages::updateDateTimeTooltip); - connect(m_ui->m_cmbMessagesTimeFormat, &QComboBox::currentTextChanged, - this, &SettingsFeedsMessages::updateDateTimeTooltip); + connect(m_ui->m_cmbMessagesDateTimeFormat, + &QComboBox::currentTextChanged, + this, + &SettingsFeedsMessages::updateDateTimeTooltip); + connect(m_ui->m_cmbMessagesTimeFormat, + &QComboBox::currentTextChanged, + this, + &SettingsFeedsMessages::updateDateTimeTooltip); emit m_ui->m_cmbMessagesDateTimeFormat->currentTextChanged({}); emit m_ui->m_cmbMessagesTimeFormat->currentTextChanged({}); @@ -153,9 +201,7 @@ void SettingsFeedsMessages::initializeMessageDateFormats() { void SettingsFeedsMessages::changeFont(QLabel& lbl) { bool ok; - QFont new_font = QFontDialog::getFont(&ok, lbl.font(), - this, tr("Select new font"), - QFontDialog::DontUseNativeDialog); + QFont new_font = QFontDialog::getFont(&ok, lbl.font(), this, tr("Select new font"), QFontDialog::DontUseNativeDialog); if (ok) { lbl.setFont(new_font); @@ -166,70 +212,82 @@ void SettingsFeedsMessages::changeFont(QLabel& lbl) { void SettingsFeedsMessages::loadSettings() { onBeginLoadSettings(); - m_ui->m_spinRelativeArticleTime->setValue(settings()->value(GROUP(Messages), SETTING(Messages::RelativeTimeForNewerArticles)).toInt()); - m_ui->m_spinPaddingRowsMessages->setValue(settings()->value(GROUP(Messages), SETTING(Messages::ArticleListPadding)).toInt()); + m_ui->m_spinRelativeArticleTime + ->setValue(settings()->value(GROUP(Messages), SETTING(Messages::RelativeTimeForNewerArticles)).toInt()); + m_ui->m_spinPaddingRowsMessages + ->setValue(settings()->value(GROUP(Messages), SETTING(Messages::ArticleListPadding)).toInt()); m_ui->m_spinHeightRowsMessages->setValue(settings()->value(GROUP(GUI), SETTING(GUI::HeightRowMessages)).toInt()); m_ui->m_spinHeightRowsFeeds->setValue(settings()->value(GROUP(GUI), SETTING(GUI::HeightRowFeeds)).toInt()); - m_ui->m_cbListsRestrictedShortcuts->setChecked(settings()->value(GROUP(Feeds), - SETTING(Feeds::OnlyBasicShortcutsInLists)).toBool()); - m_ui->m_cbHideCountsIfNoUnread->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::HideCountsIfNoUnread)).toBool()); - m_ui->m_checkDisplayFeedIcons->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::DisplayFeedIconsInList)).toBool()); - m_ui->m_checkBringToForegroundAfterMsgOpened->setChecked(settings()->value(GROUP(Messages), - SETTING(Messages::BringAppToFrontAfterMessageOpenedExternally)).toBool()); - m_ui->m_checkKeppMessagesInTheMiddle->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()); - m_ui->m_checkRemoveReadMessagesOnExit->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::ClearReadOnExit)).toBool()); + m_ui->m_cbListsRestrictedShortcuts + ->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::OnlyBasicShortcutsInLists)).toBool()); + m_ui->m_cbHideCountsIfNoUnread + ->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::HideCountsIfNoUnread)).toBool()); + m_ui->m_checkDisplayFeedIcons + ->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::DisplayFeedIconsInList)).toBool()); + m_ui->m_checkBringToForegroundAfterMsgOpened + ->setChecked(settings() + ->value(GROUP(Messages), SETTING(Messages::BringAppToFrontAfterMessageOpenedExternally)) + .toBool()); + m_ui->m_checkKeppMessagesInTheMiddle + ->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::KeepCursorInCenter)).toBool()); + m_ui->m_checkRemoveReadMessagesOnExit + ->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::ClearReadOnExit)).toBool()); m_ui->m_checkAutoUpdate->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::AutoUpdateEnabled)).toBool()); - m_ui->m_checkAutoUpdateOnlyUnfocused->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::AutoUpdateOnlyUnfocused)).toBool()); + m_ui->m_checkAutoUpdateOnlyUnfocused + ->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::AutoUpdateOnlyUnfocused)).toBool()); m_ui->m_spinAutoUpdateInterval->setValue(settings()->value(GROUP(Feeds), SETTING(Feeds::AutoUpdateInterval)).toInt()); m_ui->m_spinFeedUpdateTimeout->setValue(settings()->value(GROUP(Feeds), SETTING(Feeds::UpdateTimeout)).toInt()); - m_ui->m_checkUpdateAllFeedsOnStartup->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::FeedsUpdateOnStartup)).toBool()); - m_ui->m_spinStartupUpdateDelay->setValue(settings()->value(GROUP(Feeds), SETTING(Feeds::FeedsUpdateStartupDelay)).toDouble()); - m_ui->m_cmbCountsFeedList->addItems({ QSL("(%unread)"), QSL("[%unread]"), QSL("%unread/%all"), - QSL("%unread-%all"), QSL("[%unread|%all]") }); + m_ui->m_checkUpdateAllFeedsOnStartup + ->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::FeedsUpdateOnStartup)).toBool()); + m_ui->m_spinStartupUpdateDelay + ->setValue(settings()->value(GROUP(Feeds), SETTING(Feeds::FeedsUpdateStartupDelay)).toDouble()); + m_ui->m_cmbCountsFeedList + ->addItems({QSL("(%unread)"), QSL("[%unread]"), QSL("%unread/%all"), QSL("%unread-%all"), QSL("[%unread|%all]")}); m_ui->m_cmbCountsFeedList->setEditText(settings()->value(GROUP(Feeds), SETTING(Feeds::CountFormat)).toString()); - m_ui->m_checkShowTooltips->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::EnableTooltipsFeedsMessages)).toBool()); - m_ui->m_cmbIgnoreContentsChanges->setChecked(settings()->value(GROUP(Messages), - SETTING(Messages::IgnoreContentsChanges)).toBool()); - m_ui->m_checkMultilineArticleList->setChecked(settings()->value(GROUP(Messages), - SETTING(Messages::MultilineArticleList)).toBool()); + m_ui->m_checkShowTooltips + ->setChecked(settings()->value(GROUP(Feeds), SETTING(Feeds::EnableTooltipsFeedsMessages)).toBool()); + m_ui->m_cmbIgnoreContentsChanges + ->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::IgnoreContentsChanges)).toBool()); + m_ui->m_checkMultilineArticleList + ->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::MultilineArticleList)).toBool()); - m_ui->m_spinHeightImageAttachments->setValue(settings()->value(GROUP(Messages), - SETTING(Messages::MessageHeadImageHeight)).toInt()); - m_ui->m_cbShowEnclosuresDirectly->setChecked(settings()->value(GROUP(Messages), - SETTING(Messages::DisplayEnclosuresInMessage)).toBool()); + m_ui->m_spinHeightImageAttachments + ->setValue(settings()->value(GROUP(Messages), SETTING(Messages::MessageHeadImageHeight)).toInt()); + m_ui->m_cbShowEnclosuresDirectly + ->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::DisplayEnclosuresInMessage)).toBool()); - m_ui->m_cbFixupArticleDatetime->setChecked(settings()->value(GROUP(Messages), - SETTING(Messages::FixupFutureArticleDateTimes)).toBool()); + m_ui->m_cbFixupArticleDatetime + ->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::FixupFutureArticleDateTimes)).toBool()); - m_ui->m_checkMessagesDateTimeFormat->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::UseCustomDate)).toBool()); - m_ui->m_cmbMessagesDateTimeFormat->setCurrentText(settings()->value(GROUP(Messages), - SETTING(Messages::CustomDateFormat)).toString()); + m_ui->m_checkMessagesDateTimeFormat + ->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::UseCustomDate)).toBool()); + m_ui->m_cmbMessagesDateTimeFormat + ->setCurrentText(settings()->value(GROUP(Messages), SETTING(Messages::CustomDateFormat)).toString()); - m_ui->m_checkMessagesTimeFormat->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::UseCustomTime)).toBool()); - m_ui->m_cmbMessagesTimeFormat->setCurrentText(settings()->value(GROUP(Messages), - SETTING(Messages::CustomTimeFormat)).toString()); + m_ui->m_checkMessagesTimeFormat + ->setChecked(settings()->value(GROUP(Messages), SETTING(Messages::UseCustomTime)).toBool()); + m_ui->m_cmbMessagesTimeFormat + ->setCurrentText(settings()->value(GROUP(Messages), SETTING(Messages::CustomTimeFormat)).toString()); QFont fon; - fon.fromString(settings()->value(GROUP(Messages), - SETTING(Messages::PreviewerFontStandard)).toString()); + fon.fromString(settings()->value(GROUP(Messages), SETTING(Messages::PreviewerFontStandard)).toString()); m_ui->m_lblMessagesFont->setFont(fon); QFont fon2; // Keep in sync with void MessagesModel::setupFonts(). - fon2.fromString(settings()->value(GROUP(Messages), - Messages::ListFont, - Application::font("MessagesView").toString()).toString()); + fon2.fromString(settings() + ->value(GROUP(Messages), Messages::ListFont, Application::font("MessagesView").toString()) + .toString()); m_ui->m_lblMessageListFont->setFont(fon2); QFont fon3; // Keep in sync with void FeedsModel::setupFonts(). - fon3.fromString(settings()->value(GROUP(Feeds), - Feeds::ListFont, - Application::font("FeedsView").toString()).toString()); + fon3 + .fromString(settings()->value(GROUP(Feeds), Feeds::ListFont, Application::font("FeedsView").toString()).toString()); m_ui->m_lblFeedListFont->setFont(fon3); onEndLoadSettings(); @@ -238,19 +296,23 @@ void SettingsFeedsMessages::loadSettings() { void SettingsFeedsMessages::saveSettings() { onBeginSaveSettings(); - settings()->setValue(GROUP(Messages), Messages::RelativeTimeForNewerArticles, m_ui->m_spinRelativeArticleTime->value()); + settings()->setValue(GROUP(Messages), + Messages::RelativeTimeForNewerArticles, + m_ui->m_spinRelativeArticleTime->value()); settings()->setValue(GROUP(Messages), Messages::ArticleListPadding, m_ui->m_spinPaddingRowsMessages->value()); settings()->setValue(GROUP(GUI), GUI::HeightRowMessages, m_ui->m_spinHeightRowsMessages->value()); settings()->setValue(GROUP(GUI), GUI::HeightRowFeeds, m_ui->m_spinHeightRowsFeeds->value()); - settings()->setValue(GROUP(Feeds), Feeds::OnlyBasicShortcutsInLists, - m_ui->m_cbListsRestrictedShortcuts->isChecked()); + settings()->setValue(GROUP(Feeds), Feeds::OnlyBasicShortcutsInLists, m_ui->m_cbListsRestrictedShortcuts->isChecked()); settings()->setValue(GROUP(Feeds), Feeds::HideCountsIfNoUnread, m_ui->m_cbHideCountsIfNoUnread->isChecked()); settings()->setValue(GROUP(Messages), Messages::DisplayFeedIconsInList, m_ui->m_checkDisplayFeedIcons->isChecked()); - settings()->setValue(GROUP(Messages), Messages::BringAppToFrontAfterMessageOpenedExternally, + settings()->setValue(GROUP(Messages), + Messages::BringAppToFrontAfterMessageOpenedExternally, m_ui->m_checkBringToForegroundAfterMsgOpened->isChecked()); - settings()->setValue(GROUP(Messages), Messages::KeepCursorInCenter, m_ui->m_checkKeppMessagesInTheMiddle->isChecked()); + settings()->setValue(GROUP(Messages), + Messages::KeepCursorInCenter, + m_ui->m_checkKeppMessagesInTheMiddle->isChecked()); settings()->setValue(GROUP(Messages), Messages::ClearReadOnExit, m_ui->m_checkRemoveReadMessagesOnExit->isChecked()); settings()->setValue(GROUP(Feeds), Feeds::AutoUpdateEnabled, m_ui->m_checkAutoUpdate->isChecked()); settings()->setValue(GROUP(Feeds), Feeds::AutoUpdateOnlyUnfocused, m_ui->m_checkAutoUpdateOnlyUnfocused->isChecked()); @@ -267,7 +329,9 @@ void SettingsFeedsMessages::saveSettings() { Messages::DisplayEnclosuresInMessage, m_ui->m_cbShowEnclosuresDirectly->isChecked()); - settings()->setValue(GROUP(Messages), Messages::FixupFutureArticleDateTimes, m_ui->m_cbFixupArticleDatetime->isChecked()); + settings()->setValue(GROUP(Messages), + Messages::FixupFutureArticleDateTimes, + m_ui->m_cbFixupArticleDatetime->isChecked()); settings()->setValue(GROUP(Messages), Messages::UseCustomDate, m_ui->m_checkMessagesDateTimeFormat->isChecked()); settings()->setValue(GROUP(Messages), Messages::UseCustomTime, m_ui->m_checkMessagesTimeFormat->isChecked()); diff --git a/src/librssguard/gui/settings/settingsfeedsmessages.ui b/src/librssguard/gui/settings/settingsfeedsmessages.ui index 9e39a4876..cf98406de 100644 --- a/src/librssguard/gui/settings/settingsfeedsmessages.ui +++ b/src/librssguard/gui/settings/settingsfeedsmessages.ui @@ -330,14 +330,14 @@ - - px - - 22 + -1 - 1000 + 4000 + + + -1 diff --git a/src/librssguard/gui/webviewers/qtextbrowser/textbrowserviewer.cpp b/src/librssguard/gui/webviewers/qtextbrowser/textbrowserviewer.cpp index 578367fc2..2a0963220 100644 --- a/src/librssguard/gui/webviewers/qtextbrowser/textbrowserviewer.cpp +++ b/src/librssguard/gui/webviewers/qtextbrowser/textbrowserviewer.cpp @@ -67,17 +67,14 @@ QPair TextBrowserViewer::prepareHtmlForMessage(const QList[%1] %2").arg(tr("image"), match.captured(1)); } - /*if (qApp->settings()->value(GROUP(Messages), SETTING(Messages::DisplayImagePlaceholders)).toBool()) { - html += message.m_contents; - } - else {*/ QString cnts = message.m_contents; - html += cnts; - // html += cnts.replace(imgTagRegex, QString()); - - //} + auto forced_img_size = qApp->settings()->value(GROUP(Messages), SETTING(Messages::MessageHeadImageHeight)).toInt(); + // Fixup all "img" tags. + html += cnts.replace(img_tag_rgx, + QSL("") + .arg(forced_img_size <= 0 ? QString() : QString::number(forced_img_size))); html += pictures_html; } @@ -347,13 +344,13 @@ void TextBrowserViewer::reloadWithImages() { m_document.data()->m_reloadingWithResources = true; m_document.data()->m_loadedResources.clear(); - for (const QUrl& url : m_document.data()->m_resourcesForHtml) { + QEventLoop loop; + + for (const QUrl& url : m_document.data()->m_neededResourcesForHtml) { if (m_document.data()->m_loadedResources.contains(url)) { continue; } - QEventLoop loop; - connect(m_downloader.data(), &Downloader::completed, &loop, &QEventLoop::quit); m_downloader->manipulateData(url.toString(), QNetworkAccessManager::Operation::GetOperation, {}, 5000); @@ -414,7 +411,7 @@ void TextBrowserViewer::onAnchorClicked(const QUrl& url) { void TextBrowserViewer::setHtml(const QString& html, const QUrl& base_url) { m_document.data()->m_reloadingWithResources = false; m_document.data()->m_loadedResources.clear(); - m_document.data()->m_resourcesForHtml.clear(); + m_document.data()->m_neededResourcesForHtml.clear(); setHtmlPrivate(html, base_url); @@ -433,7 +430,7 @@ void TextBrowserViewer::setHtmlPrivate(const QString& html, const QUrl& base_url m_currentUrl = base_url; if (!m_document.data()->m_reloadingWithResources) { - m_document.data()->m_resourcesForHtml.clear(); + m_document.data()->m_neededResourcesForHtml.clear(); } QTextBrowser::setHtml(html); @@ -448,8 +445,8 @@ TextBrowserDocument::TextBrowserDocument(QObject* parent) : QTextDocument(parent QVariant TextBrowserDocument::loadResource(int type, const QUrl& name) { if (!m_reloadingWithResources) { - if (type == QTextDocument::ResourceType::ImageResource && !m_resourcesForHtml.contains(name)) { - m_resourcesForHtml.append(name); + if (type == QTextDocument::ResourceType::ImageResource && !m_neededResourcesForHtml.contains(name)) { + m_neededResourcesForHtml.append(name); } return {}; diff --git a/src/librssguard/gui/webviewers/qtextbrowser/textbrowserviewer.h b/src/librssguard/gui/webviewers/qtextbrowser/textbrowserviewer.h index 4db693f05..c1dc22c49 100644 --- a/src/librssguard/gui/webviewers/qtextbrowser/textbrowserviewer.h +++ b/src/librssguard/gui/webviewers/qtextbrowser/textbrowserviewer.h @@ -29,7 +29,7 @@ class TextBrowserDocument : public QTextDocument { private: bool m_reloadingWithResources; - QList m_resourcesForHtml; + QList m_neededResourcesForHtml; QMap m_loadedResources; }; diff --git a/src/librssguard/miscellaneous/skinfactory.cpp b/src/librssguard/miscellaneous/skinfactory.cpp index 6565981f9..1bc28213c 100644 --- a/src/librssguard/miscellaneous/skinfactory.cpp +++ b/src/librssguard/miscellaneous/skinfactory.cpp @@ -19,7 +19,7 @@ SkinFactory::SkinFactory(QObject* parent) : QObject(parent), m_styleIsFrozen(false) {} void SkinFactory::loadCurrentSkin() { - QList skin_names_to_try = { selectedSkinName(), QSL(APP_SKIN_DEFAULT) }; + QList skin_names_to_try = {selectedSkinName(), QSL(APP_SKIN_DEFAULT)}; bool skin_parsed; Skin skin_data; QString skin_name; @@ -60,8 +60,7 @@ void SkinFactory::loadSkinFromData(const Skin& skin) { m_styleIsFrozen = false; if (!skin.m_forcedStyles.isEmpty()) { - qDebugNN << LOGSEC_GUI << "Forcing one of skin's declared styles:" - << QUOTE_W_SPACE_DOT(skin.m_forcedStyles); + qDebugNN << LOGSEC_GUI << "Forcing one of skin's declared styles:" << QUOTE_W_SPACE_DOT(skin.m_forcedStyles); for (const QString& skin_forced_style : skin.m_forcedStyles) { if (qApp->setStyle(skin_forced_style) != nullptr) { @@ -86,12 +85,10 @@ void SkinFactory::loadSkinFromData(const Skin& skin) { // they specifically set object name to style name. m_currentStyle = qApp->style()->objectName(); - const bool use_skin_colors = skin.m_forcedSkinColors || - qApp->settings()->value(GROUP(GUI), SETTING(GUI::ForcedSkinColors)).toBool(); + const bool use_skin_colors = + skin.m_forcedSkinColors || qApp->settings()->value(GROUP(GUI), SETTING(GUI::ForcedSkinColors)).toBool(); - if (isStyleGoodForAlternativeStylePalette(m_currentStyle) && - !skin.m_stylePalette.isEmpty() && - use_skin_colors) { + if (isStyleGoodForAlternativeStylePalette(m_currentStyle) && !skin.m_stylePalette.isEmpty() && use_skin_colors) { qDebugNN << LOGSEC_GUI << "Activating alternative palette."; QPalette pal = skin.extractPalette(); @@ -124,9 +121,9 @@ QString SkinFactory::selectedSkinName() const { } QString SkinFactory::adBlockedPage(const QString& url, const QString& filter) { - const QString& adblocked = currentSkin().m_adblocked.arg(tr("This page was blocked by AdBlock"), - tr(R"(Blocked URL: "%1"
Used filter: "%2")").arg(url, - filter)); + const QString& adblocked = + currentSkin().m_adblocked.arg(tr("This page was blocked by AdBlock"), + tr(R"(Blocked URL: "%1"
Used filter: "%2")").arg(url, filter)); return currentSkin().m_layoutMarkupWrapper.arg(tr("This page was blocked by AdBlock"), adblocked); } @@ -135,6 +132,8 @@ QPair SkinFactory::generateHtmlOfArticles(const QList& m Skin skin = currentSkin(); QString messages_layout; QString single_message_layout = skin.m_layoutMarkup; + const auto forced_img_size = + qApp->settings()->value(GROUP(Messages), SETTING(Messages::MessageHeadImageHeight)).toInt(); for (const Message& message : messages) { QString enclosures; @@ -143,46 +142,45 @@ QPair SkinFactory::generateHtmlOfArticles(const QList& m for (const Enclosure& enclosure : message.m_enclosures) { QString enc_url = QUrl::fromPercentEncoding(enclosure.m_url.toUtf8()); - enclosures += skin.m_enclosureMarkup.arg(enc_url, - QSL("🧷"), - enclosure.m_mimeType); + enclosures += skin.m_enclosureMarkup.arg(enc_url, QSL("🧷"), enclosure.m_mimeType); if (enclosure.m_mimeType.startsWith(QSL("image/")) && qApp->settings()->value(GROUP(Messages), SETTING(Messages::DisplayEnclosuresInMessage)).toBool()) { // Add thumbnail image. - enclosure_images += skin.m_enclosureImageMarkup.arg( - enclosure.m_url, - enclosure.m_mimeType, - qApp->settings()->value(GROUP(Messages), SETTING(Messages::MessageHeadImageHeight)).toString()); + enclosure_images += + skin.m_enclosureImageMarkup.arg(enclosure.m_url, + enclosure.m_mimeType, + forced_img_size <= 0 ? QString() : QString::number(forced_img_size)); } } - QString msg_date = qApp->settings()->value(GROUP(Messages), SETTING(Messages::UseCustomDate)).toBool() - ? message.m_created.toLocalTime().toString(qApp->settings()->value(GROUP(Messages), - SETTING(Messages::CustomDateFormat)).toString()) - : qApp->localization()->loadedLocale().toString(message.m_created.toLocalTime(), - QLocale::FormatType::ShortFormat); + QString msg_date = + qApp->settings()->value(GROUP(Messages), SETTING(Messages::UseCustomDate)).toBool() + ? message.m_created.toLocalTime() + .toString(qApp->settings()->value(GROUP(Messages), SETTING(Messages::CustomDateFormat)).toString()) + : qApp->localization()->loadedLocale().toString(message.m_created.toLocalTime(), + QLocale::FormatType::ShortFormat); - messages_layout.append(single_message_layout - .arg(message.m_title, - tr("Written by ") + (message.m_author.isEmpty() ? - tr("unknown author") : - message.m_author), - message.m_url, - message.m_contents, - msg_date, - enclosures, - enclosure_images, - QString::number(message.m_id))); + messages_layout.append(single_message_layout.arg(message.m_title, + tr("Written by ") + (message.m_author.isEmpty() + ? tr("unknown author") + : message.m_author), + message.m_url, + message.m_contents, + msg_date, + enclosures, + enclosure_images, + QString::number(message.m_id))); } - QString msg_contents = skin.m_layoutMarkupWrapper.arg(messages.size() == 1 - ? messages.at(0).m_title - : tr("Newspaper view"), - messages_layout); - auto* feed = root->getParentServiceRoot()->getItemFromSubTree([messages](const RootItem* it) { - return it->kind() == RootItem::Kind::Feed && it->customId() == messages.at(0).m_feedId; - })->toFeed(); + QString msg_contents = + skin.m_layoutMarkupWrapper.arg(messages.size() == 1 ? messages.at(0).m_title : tr("Newspaper view"), + messages_layout); + auto* feed = root->getParentServiceRoot() + ->getItemFromSubTree([messages](const RootItem* it) { + return it->kind() == RootItem::Kind::Feed && it->customId() == messages.at(0).m_feedId; + }) + ->toFeed(); QString base_url; if (feed != nullptr) { @@ -193,15 +191,12 @@ QPair SkinFactory::generateHtmlOfArticles(const QList& m } } - return { msg_contents, base_url }; + return {msg_contents, base_url}; } Skin SkinFactory::skinInfo(const QString& skin_name, bool* ok) const { Skin skin; - const QStringList skins_root_folders = { - APP_SKIN_PATH, - customSkinBaseFolder() - }; + const QStringList skins_root_folders = {APP_SKIN_PATH, customSkinBaseFolder()}; for (const QString& skins_root_folder : skins_root_folders) { const QString skin_parent = QString(skins_root_folder).replace(QDir::separator(), QL1C('/')) + QL1C('/'); @@ -223,7 +218,8 @@ Skin SkinFactory::skinInfo(const QString& skin_name, bool* ok) const { } const QDomNode skin_node = document.namedItem(QSL("skin")); - const QString base_skin_name = skin_node.toElement().attribute(QSL("base"));; + const QString base_skin_name = skin_node.toElement().attribute(QSL("base")); + ; QString real_base_skin_folder; if (!base_skin_name.isEmpty()) { @@ -279,17 +275,18 @@ Skin SkinFactory::skinInfo(const QString& skin_name, bool* ok) const { skin.m_colorPalette = palette; // Obtain alternative style palette. - skin.m_forcedStyles = skin_node - .namedItem(QSL("forced-styles")) - .toElement().text().split(',', + skin.m_forcedStyles = skin_node.namedItem(QSL("forced-styles")) + .toElement() + .text() + .split(',', #if QT_VERSION >= 0x050F00 // Qt >= 5.15.0 - Qt::SplitBehaviorFlags::SkipEmptyParts); + Qt::SplitBehaviorFlags::SkipEmptyParts); #else - QString::SplitBehavior::SkipEmptyParts); + QString::SplitBehavior::SkipEmptyParts); #endif - skin.m_forcedSkinColors = skin_node.namedItem(QSL("forced-skin-colors")).toElement().text() == - QVariant(true).toString(); + skin.m_forcedSkinColors = + skin_node.namedItem(QSL("forced-skin-colors")).toElement().text() == QVariant(true).toString(); QDomElement style_palette_root = skin_node.namedItem(QSL("style-palette")).toElement(); @@ -306,7 +303,8 @@ Skin SkinFactory::skinInfo(const QString& skin_name, bool* ok) const { for (int i = 0; i < groups_of_palette.size(); i++) { const QDomNode& group_root_nd = groups_of_palette.at(i); - QPalette::ColorGroup group = QPalette::ColorGroup(enumerp.keyToValue(group_root_nd.toElement().attribute(QSL("id")).toLatin1())); + QPalette::ColorGroup group = + QPalette::ColorGroup(enumerp.keyToValue(group_root_nd.toElement().attribute(QSL("id")).toLatin1())); QDomNodeList colors_of_group = group_root_nd.toElement().elementsByTagName(QSL("color")); @@ -314,11 +312,12 @@ Skin SkinFactory::skinInfo(const QString& skin_name, bool* ok) const { const QDomNode& color_nd = colors_of_group.at(j); QColor color(color_nd.toElement().text()); - QPalette::ColorRole role = QPalette::ColorRole(enumerx.keyToValue(color_nd.toElement().attribute(QSL("role")).toLatin1())); - Qt::BrushStyle brush = Qt::BrushStyle(enumery.keyToValue(color_nd.toElement().attribute(QSL("brush")).toLatin1())); + QPalette::ColorRole role = + QPalette::ColorRole(enumerx.keyToValue(color_nd.toElement().attribute(QSL("role")).toLatin1())); + Qt::BrushStyle brush = + Qt::BrushStyle(enumery.keyToValue(color_nd.toElement().attribute(QSL("brush")).toLatin1())); - groups.insert(group, QPair>(role, - { color, brush })); + groups.insert(group, QPair>(role, {color, brush})); } } @@ -347,21 +346,19 @@ Skin SkinFactory::skinInfo(const QString& skin_name, bool* ok) const { skin.m_layoutMarkupWrapper = skin.m_layoutMarkupWrapper.replace(QSL(SKIN_STYLE_PLACEHOLDER), custom_css); } catch (...) { - qWarningNN << "Skin" - << QUOTE_W_SPACE(skin_name) - << "does not support separated custom CSS."; + qWarningNN << "Skin" << QUOTE_W_SPACE(skin_name) << "does not support separated custom CSS."; } - skin.m_enclosureImageMarkup = loadSkinFile(skin_folder_no_sep, QSL("html_enclosure_image.html"), real_base_skin_folder); + skin.m_enclosureImageMarkup = + loadSkinFile(skin_folder_no_sep, QSL("html_enclosure_image.html"), real_base_skin_folder); skin.m_layoutMarkup = loadSkinFile(skin_folder_no_sep, QSL("html_single_message.html"), real_base_skin_folder); - skin.m_enclosureMarkup = loadSkinFile(skin_folder_no_sep, QSL("html_enclosure_every.html"), real_base_skin_folder); + skin.m_enclosureMarkup = + loadSkinFile(skin_folder_no_sep, QSL("html_enclosure_every.html"), real_base_skin_folder); skin.m_rawData = loadSkinFile(skin_folder_no_sep, QSL("qt_style.qss"), real_base_skin_folder); skin.m_adblocked = loadSkinFile(skin_folder_no_sep, QSL("html_adblocked.html"), real_base_skin_folder); if (ok != nullptr) { - *ok = !skin.m_author.isEmpty() && - !skin.m_version.isEmpty() && - !skin.m_baseName.isEmpty() && + *ok = !skin.m_author.isEmpty() && !skin.m_version.isEmpty() && !skin.m_baseName.isEmpty() && !skin.m_layoutMarkup.isEmpty(); } @@ -376,7 +373,9 @@ Skin SkinFactory::skinInfo(const QString& skin_name, bool* ok) const { return skin; } -QString SkinFactory::loadSkinFile(const QString& skin_folder, const QString& file_name, const QString& base_folder) const { +QString SkinFactory::loadSkinFile(const QString& skin_folder, + const QString& file_name, + const QString& base_folder) const { QString local_file = QDir::toNativeSeparators(skin_folder + QDir::separator() + file_name); QString base_file = QDir::toNativeSeparators(base_folder + QDir::separator() + file_name); QString data; @@ -404,13 +403,11 @@ bool SkinFactory::styleIsFrozen() const { QList SkinFactory::installedSkins() const { QList skins; bool skin_load_ok; - QStringList skin_directories = QDir(APP_SKIN_PATH).entryList(QDir::Filter::Dirs | - QDir::Filter::NoDotAndDotDot | - QDir::Filter::Readable); + QStringList skin_directories = + QDir(APP_SKIN_PATH).entryList(QDir::Filter::Dirs | QDir::Filter::NoDotAndDotDot | QDir::Filter::Readable); - skin_directories.append(QDir(customSkinBaseFolder()).entryList(QDir::Filter::Dirs | - QDir::Filter::NoDotAndDotDot | - QDir::Filter::Readable)); + skin_directories.append(QDir(customSkinBaseFolder()) + .entryList(QDir::Filter::Dirs | QDir::Filter::NoDotAndDotDot | QDir::Filter::Readable)); for (const QString& base_directory : skin_directories) { const Skin skin_info = skinInfo(base_directory, &skin_load_ok); @@ -429,8 +426,7 @@ uint qHash(const SkinEnums::PaletteColors& key) { QVariant Skin::colorForModel(SkinEnums::PaletteColors type, bool ignore_custom_colors) const { if (!ignore_custom_colors) { - bool enabled = qApp->settings()->value(GROUP(CustomSkinColors), - SETTING(CustomSkinColors::Enabled)).toBool(); + bool enabled = qApp->settings()->value(GROUP(CustomSkinColors), SETTING(CustomSkinColors::Enabled)).toBool(); if (enabled) { const QMetaObject& mo = SkinEnums::staticMetaObject; @@ -443,9 +439,7 @@ QVariant Skin::colorForModel(SkinEnums::PaletteColors type, bool ignore_custom_c } } - return m_colorPalette.contains(type) - ? m_colorPalette[type] - : QVariant(); + return m_colorPalette.contains(type) ? m_colorPalette[type] : QVariant(); } QPalette Skin::extractPalette() const { @@ -480,7 +474,8 @@ QString SkinEnums::palleteColorText(PaletteColors col) { return QObject::tr("interesting stuff"); case SkinEnums::PaletteColors::FgSelectedInteresting: - return QObject::tr("interesting stuff (highlighted)");; + return QObject::tr("interesting stuff (highlighted)"); + ; case SkinEnums::PaletteColors::FgError: return QObject::tr("errored items");