diff --git a/localization/rssguard_en.ts b/localization/rssguard_en.ts index d492a7598..833d5e4f7 100644 --- a/localization/rssguard_en.ts +++ b/localization/rssguard_en.ts @@ -715,33 +715,33 @@ Click here to open parent directory. Feed - + uses global settings, but global auto-fetching of articles is disabled - + no errors no errors - + authentication error - + network error - + does not use auto-fetching of articles Describes feed auto-update status. - + uses global settings (%n minute(s) to next auto-fetch of articles) @@ -749,7 +749,7 @@ Click here to open parent directory. - + uses specific settings (%n minute(s) to next auto-fetching of new articles) Describes feed auto-update status. @@ -758,22 +758,22 @@ Click here to open parent directory. - + has new articles - + parsing error - + error - + Auto-update status: %1 Active message filters: %2 Status: %3 @@ -1105,7 +1105,7 @@ Item ID: %5 Cannot delete item - + Context menu for empty space Context menu for empty space @@ -1120,8 +1120,8 @@ Item ID: %5 Selected item cannot be deleted because another critical operation is ongoing. - - + + Context menu for categories Context menu for categories @@ -1133,12 +1133,12 @@ Item ID: %5 Are you sure? - + Context menu for other items Context menu for other items - + Context menu for regex query @@ -1223,22 +1223,22 @@ Item ID: %5 - + Context menu for recycle bins - + Context menu for accounts - + Context menu for label - + Context menu for important articles @@ -1367,12 +1367,12 @@ QtWebEngine cache folder -> "%7" - + E-mail NOT sent - + Your e-mail message wasn't sent. @@ -2062,17 +2062,27 @@ QtWebEngine cache folder -> "%7" FormGreaderFeedDetails - + + Feed added + Feed added + + + + Feed was added, refreshing feed tree... + + + + Feed NOT updated or added - + Error: %1 Error: %1 - + General General @@ -2088,12 +2098,12 @@ QtWebEngine cache folder -> "%7" FormMain - + No possible actions No possible actions - + No recycle bin No recycle bin @@ -2153,589 +2163,579 @@ QtWebEngine cache folder -> "%7" - + Art&icles - + &Recycle bin(s) - + &Accounts - + &Web browser && tabs - + &Quit - + Quit the application. - + &Settings - + Display settings of the application. - + &About application - + Displays extra info about this application. - + &Fullscreen - + Switch fullscreen mode. - + &Fetch all - + Fetch all feeds - + Fetch &selected - + Fetch selected feeds - + Mark articles &read - + Mark selected articles read - + Mark articles &unread - + Mark selected articles unread - + Switch &importance - + Switch importance of selected articles - + Mark all messages (without message filters) from selected items as read. - + Mark all messages (without message filters) from selected items as unread. - + &Delete articles - + &Edit selected items - + &Delete selected items - + Mark selected items &read - + Mark selected items &unread - + &Clean selected items - + Deletes all messages from selected items. - + Open in &external browser - + Open selected articles in external browser - + Open in &internal browser - + Open selected articles in internal browser - + No actions available - + No actions are available right now. - + &Mark all read - + Marks all messages in all items read. This does not take message filters into account. - - View selected item in &newspaper mode - - - - - Displays all messages from selected item in a new "newspaper mode" tab. Note that messages are not set as read automatically. - - - - + Switch main window visibility - + Hides main window if it is visible and shows it if it is hidden. - + &Feed list - + Hides or shows the list of feeds/categories. - + &Clean all - + Deletes all messages from all items. - + &Next item - + &Previous item - + &Next article - + &Previous article - + Check for &updates - + Check if new update for the application is available for download. - + &Main menu - + Hides or displays the main menu. - + Report a &bug... - + &Toolbars - + Switch visibility of main toolbars. - + &List headers - + &Donate... - + Display &documentation - + &Restart - + &Restore settings - + &Backup settings - + Switch layout - + &Downloads - + Send via e-mail - + Send selected articles via e-mail - + &Cleanup database - + Show unread items only - + &Expand/collapse selected item - + &Add account - + &Restore articles - + &Restore all recycle bins - + &Empty all recycle bins - + Next &unread article - + Status bar - + &Edit selected account - + &Delete selected account - - + + Add new category Add new category - + Stop ongoing fetching - + New browser tab - + Close all tabs - + Close all tabs except current - + Go to &next tab - + Go to &previous tab - + &Enable article preview - + &Copy URL of selected item - + Article &filters - + &Show tree expanders - + Fetch feeds with &custom auto-download policy - + Alternate row colors in lists - + Automatically &expand item when selected - + Message viewer toolbars - + Expand/collapse selected item &recursively - + Close &current tab - + &Copy URLs of selected articles - + Open in internal browser (no new tab) - + &Sort alphabetically - + Move &up - + Move to &top - + Move &down - + Move to &bottom - + Display application &log - + Focus feeds search box - + Focus articles search box - + Scroll &up browser - + Scroll &down browser - + Rearrange &subcategories alphabetically - + Rearrange &feeds alphabetically - + Cleanup web cac&he - + You must add new account first - + You must add new account first. - + Edit &child feeds - + Edit child feeds (&recursive) - - + + Add new feed Add new feed - + No actions possible No actions possible @@ -2750,17 +2750,17 @@ QtWebEngine cache folder -> "%7" Cannot cleanup database, because another critical action is running. - + Close opened modal dialogs first. Close opened modal dialogs first. - + Fetching common data - + Close dialogs @@ -3720,11 +3720,6 @@ You can install it now. you are not logged in - - - failed to get metadata - - @@ -4062,38 +4057,38 @@ Login tokens expiration: %2 GreaderNetwork - - - - - - + + + + + + login failed - + Inoreader: authentication error - + Click this to login again. Error is: '%1' - + Inoreader: authorization denied - + Click this to login again. - - + + Login @@ -4463,12 +4458,12 @@ Login tokens expiration: %2 - + Select an image - + JPEG (*.jpg);; GIF (*.gif);; PNG (*.png);; BMP (*.bmp);; All (*) @@ -5061,12 +5056,12 @@ Login tokens expiration: %2 MessagesView - + Problem with starting external e-mail client Problem with starting external e-mail client - + External e-mail client could not be started. External e-mail client could not be started. @@ -5076,12 +5071,12 @@ Login tokens expiration: %2 - + Cannot run external tool - + External tool '%1' could not be started. @@ -5502,7 +5497,7 @@ Login tokens expiration: %2 QObject - + + %n other feeds. @@ -6033,7 +6028,7 @@ Login tokens expiration: %2 RootItem - + %n unread article(s). Tooltip for "unread" column of feed list. @@ -6573,7 +6568,7 @@ Authors of this application are NOT responsible for lost data. SettingsFeedsMessages - + Select new font @@ -6606,12 +6601,12 @@ Authors of this application are NOT responsible for lost data. - + PC restart needed - + Your PC needs to be restarted to make some of enabled features fully working. @@ -6667,7 +6662,7 @@ Authors of this application are NOT responsible for lost data. - + Row height @@ -6678,15 +6673,15 @@ Authors of this application are NOT responsible for lost data. - - + + Font preview - - + + &Change font @@ -6711,97 +6706,102 @@ Authors of this application are NOT responsible for lost data. - + + Update feed list during feed fetching + + + + Articles - + Remove all read articles from all feeds on application exit - + Ignore changes in article body when new articles are being fetched - + Internal article viewer - + Unread article icon type - + Bring application window to front once article is opened in external web browser - + Article browser font - + Fixup date/time of articles which are in the future - + Display attachments directly in article - + Limit height of pictures - + Keep article viewer always visible - + Articles list - + Keep article selection in the middle of the article list viewport - + Enable multiline items - + Top/bottom row padding - + Use custom date/time format - + Custom date/time format for today's articles - + Article list font - + Show relative time for articles not older than @@ -7085,29 +7085,29 @@ Description: %3 - - - + + + Big thanks to all translators! - + Translations provided by: %1 - + Translators needed! - + The translation '%1' is incomplete and anyone able to help with translating %2 is greatly welcomed. - + Do you want to help with the translation now? @@ -7890,37 +7890,32 @@ Unread news: %2 TabWidget - + Feeds Feeds - + Displays main menu. Displays main menu. - + Main menu Main menu - + Downloads Downloads - - Newspaper view - Newspaper view - - - + Web browser Web browser - + Browse your feeds and articles diff --git a/src/librssguard/gui/dialogs/formmain.cpp b/src/librssguard/gui/dialogs/formmain.cpp index 3251e33b5..16964ba66 100644 --- a/src/librssguard/gui/dialogs/formmain.cpp +++ b/src/librssguard/gui/dialogs/formmain.cpp @@ -224,7 +224,6 @@ QList FormMain::allActions() const { actions << m_ui->m_actionFeedMoveTop; actions << m_ui->m_actionFeedMoveBottom; actions << m_ui->m_actionAddCategoryIntoSelectedItem; - actions << m_ui->m_actionViewSelectedItemsNewspaperMode; actions << m_ui->m_actionSelectNextItem; actions << m_ui->m_actionSelectPreviousItem; actions << m_ui->m_actionSelectNextMessage; @@ -466,7 +465,7 @@ void FormMain::updateMessageButtonsAvailability() { m_ui->m_actionMarkSelectedMessagesAsRead->setEnabled(atleast_one_message_selected); m_ui->m_actionMarkSelectedMessagesAsUnread->setEnabled(atleast_one_message_selected); m_ui->m_actionOpenSelectedMessagesInternallyNoTab->setEnabled(one_message_selected); - m_ui->m_actionOpenSelectedMessagesInternally->setEnabled(atleast_one_message_selected); + m_ui->m_actionOpenSelectedMessagesInternally->setEnabled(one_message_selected); m_ui->m_actionOpenSelectedSourceArticlesExternally->setEnabled(atleast_one_message_selected); m_ui->m_actionCopyUrlSelectedArticles->setEnabled(atleast_one_message_selected); m_ui->m_actionSendMessageViaEmail->setEnabled(one_message_selected); @@ -501,7 +500,6 @@ void FormMain::updateFeedButtonsAvailability() { 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_actionViewSelectedItemsNewspaperMode->setEnabled(anything_selected); m_ui->m_actionExpandCollapseItem->setEnabled(category_selected || service_selected); m_ui->m_actionExpandCollapseItemRecursively->setEnabled(category_selected || service_selected); m_ui->m_actionServiceDelete->setEnabled(service_selected); @@ -612,7 +610,6 @@ void FormMain::setupIcons() { m_ui->m_actionOpenSelectedMessagesInternally->setIcon(icon_theme_factory->fromTheme(QSL("document-open"))); m_ui->m_actionOpenSelectedMessagesInternallyNoTab->setIcon(icon_theme_factory->fromTheme(QSL("document-open"))); m_ui->m_actionSendMessageViaEmail->setIcon(icon_theme_factory->fromTheme(QSL("mail-send"))); - m_ui->m_actionViewSelectedItemsNewspaperMode->setIcon(icon_theme_factory->fromTheme(QSL("format-justify-fill"))); m_ui->m_actionSelectNextItem->setIcon(icon_theme_factory->fromTheme(QSL("arrow-down"))); m_ui->m_actionSelectPreviousItem->setIcon(icon_theme_factory->fromTheme(QSL("arrow-up"))); m_ui->m_actionSelectNextMessage->setIcon(icon_theme_factory->fromTheme(QSL("arrow-down"))); @@ -947,10 +944,6 @@ void FormMain::createConnections() { &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), &FeedsView::editRecursiveFeeds); - connect(m_ui->m_actionViewSelectedItemsNewspaperMode, - &QAction::triggered, - tabWidget()->feedMessageViewer()->feedsView(), - &FeedsView::openSelectedItemsInNewspaperMode); connect(m_ui->m_actionDeleteSelectedItem, &QAction::triggered, tabWidget()->feedMessageViewer()->feedsView(), diff --git a/src/librssguard/gui/dialogs/formmain.ui b/src/librssguard/gui/dialogs/formmain.ui index 2894928e5..d26d331b5 100644 --- a/src/librssguard/gui/dialogs/formmain.ui +++ b/src/librssguard/gui/dialogs/formmain.ui @@ -148,7 +148,6 @@ - @@ -431,17 +430,6 @@ - - - View selected item in &newspaper mode - - - Displays all messages from selected item in a new "newspaper mode" tab. Note that messages are not set as read automatically. - - - - - false diff --git a/src/librssguard/gui/feedsview.cpp b/src/librssguard/gui/feedsview.cpp index 55a7f22ff..7eafef60b 100644 --- a/src/librssguard/gui/feedsview.cpp +++ b/src/librssguard/gui/feedsview.cpp @@ -550,15 +550,6 @@ void FeedsView::markAllItemsRead() { markAllItemsReadStatus(RootItem::ReadStatus::Read); } -void FeedsView::openSelectedItemsInNewspaperMode() { - RootItem* selected_item = selectedItem(); - const QList messages = m_sourceModel->messagesForItem(selected_item); - - if (!messages.isEmpty()) { - emit openMessagesInNewspaperView(selected_item, messages); - } -} - void FeedsView::selectNextItem() { QModelIndex index_next = moveCursor(QAbstractItemView::CursorAction::MoveDown, Qt::KeyboardModifier::NoModifier); @@ -656,9 +647,8 @@ QMenu* FeedsView::initializeContextMenuBin(RootItem* clicked_item) { QList specific_actions = clicked_item->contextMenuFeedsList(); - m_contextMenuBin->addActions(QList() << qApp->mainForm()->m_ui->m_actionViewSelectedItemsNewspaperMode - << qApp->mainForm()->m_ui->m_actionMarkSelectedItemsAsRead - << qApp->mainForm()->m_ui->m_actionMarkSelectedItemsAsUnread); + m_contextMenuBin->addActions({qApp->mainForm()->m_ui->m_actionMarkSelectedItemsAsRead, + qApp->mainForm()->m_ui->m_actionMarkSelectedItemsAsUnread}); if (!specific_actions.isEmpty()) { m_contextMenuBin->addSeparator(); @@ -683,7 +673,6 @@ QMenu* FeedsView::initializeContextMenuService(RootItem* clicked_item) { qApp->mainForm()->m_ui->m_actionEditChildFeeds, qApp->mainForm()->m_ui->m_actionEditChildFeedsRecursive, qApp->mainForm()->m_ui->m_actionCopyUrlSelectedFeed, - qApp->mainForm()->m_ui->m_actionViewSelectedItemsNewspaperMode, qApp->mainForm()->m_ui->m_actionExpandCollapseItem, qApp->mainForm()->m_ui->m_actionExpandCollapseItemRecursively, qApp->mainForm()->m_ui->m_actionRearrangeCategories, @@ -909,7 +898,6 @@ QMenu* FeedsView::initializeContextMenuCategories(RootItem* clicked_item) { qApp->mainForm()->m_ui->m_actionEditChildFeeds, qApp->mainForm()->m_ui->m_actionEditChildFeedsRecursive, qApp->mainForm()->m_ui->m_actionCopyUrlSelectedFeed, - qApp->mainForm()->m_ui->m_actionViewSelectedItemsNewspaperMode, qApp->mainForm()->m_ui->m_actionExpandCollapseItem, qApp->mainForm()->m_ui->m_actionExpandCollapseItemRecursively, qApp->mainForm()->m_ui->m_actionRearrangeCategories, @@ -962,7 +950,6 @@ QMenu* FeedsView::initializeContextMenuFeeds(RootItem* clicked_item) { m_contextMenuFeeds->addActions(QList() << qApp->mainForm()->m_ui->m_actionUpdateSelectedItems << qApp->mainForm()->m_ui->m_actionEditSelectedItem << qApp->mainForm()->m_ui->m_actionCopyUrlSelectedFeed - << qApp->mainForm()->m_ui->m_actionViewSelectedItemsNewspaperMode << qApp->mainForm()->m_ui->m_actionMarkSelectedItemsAsRead << qApp->mainForm()->m_ui->m_actionMarkSelectedItemsAsUnread << qApp->mainForm()->m_ui->m_actionDeleteSelectedItem); @@ -1008,9 +995,8 @@ QMenu* FeedsView::initializeContextMenuImportant(RootItem* clicked_item) { QList specific_actions = clicked_item->contextMenuFeedsList(); - m_contextMenuImportant->addActions(QList() << qApp->mainForm()->m_ui->m_actionViewSelectedItemsNewspaperMode - << qApp->mainForm()->m_ui->m_actionMarkSelectedItemsAsRead - << qApp->mainForm()->m_ui->m_actionMarkSelectedItemsAsUnread); + m_contextMenuImportant->addActions({qApp->mainForm()->m_ui->m_actionMarkSelectedItemsAsRead, + qApp->mainForm()->m_ui->m_actionMarkSelectedItemsAsUnread}); if (!specific_actions.isEmpty()) { m_contextMenuImportant->addSeparator(); @@ -1194,20 +1180,6 @@ void FeedsView::contextMenuEvent(QContextMenuEvent* event) { } void FeedsView::mouseDoubleClickEvent(QMouseEvent* event) { - QModelIndex idx = indexAt(event->pos()); - - if (idx.isValid()) { - RootItem* item = m_sourceModel->itemForIndex(m_proxyModel->mapToSource(idx)); - - if (item->kind() == RootItem::Kind::Feed || item->kind() == RootItem::Kind::Bin) { - const QList messages = m_sourceModel->messagesForItem(item); - - if (!messages.isEmpty()) { - emit openMessagesInNewspaperView(item, messages); - } - } - } - QTreeView::mouseDoubleClickEvent(event); } diff --git a/src/librssguard/gui/feedsview.h b/src/librssguard/gui/feedsview.h index 12aa20e93..9decb671c 100644 --- a/src/librssguard/gui/feedsview.h +++ b/src/librssguard/gui/feedsview.h @@ -58,9 +58,6 @@ class RSSGUARD_DLLSPEC FeedsView : public BaseTreeView { void markSelectedItemUnread(); void markAllItemsRead(); - // Newspaper accessors. - void openSelectedItemsInNewspaperMode(); - // Feed clearers. void clearSelectedItems(); void clearAllItems(); @@ -98,7 +95,6 @@ class RSSGUARD_DLLSPEC FeedsView : public BaseTreeView { signals: void itemSelected(RootItem* item); void requestViewNextUnreadMessage(); - void openMessagesInNewspaperView(RootItem* root, const QList& messages); protected: void drawBranches(QPainter* painter, const QRect& rect, const QModelIndex& index) const; diff --git a/src/librssguard/gui/messagepreviewer.cpp b/src/librssguard/gui/messagepreviewer.cpp index 8030d15eb..47e7e63a3 100644 --- a/src/librssguard/gui/messagepreviewer.cpp +++ b/src/librssguard/gui/messagepreviewer.cpp @@ -42,7 +42,7 @@ void MessagePreviewer::createConnections() { } MessagePreviewer::MessagePreviewer(QWidget* parent) - : QWidget(parent), m_mainLayout(new QGridLayout(this)), m_viewerLayout(new QStackedLayout()), + : TabContent(parent), m_mainLayout(new QGridLayout(this)), m_viewerLayout(new QStackedLayout()), m_toolBar(new QToolBar(this)), m_msgBrowser(new WebBrowser(nullptr, this)), m_separator(nullptr), m_btnLabels(QList()), m_itemDetails(new ItemDetails(this)), m_toolbarVisible(true) { m_toolBar->setOrientation(Qt::Orientation::Vertical); diff --git a/src/librssguard/gui/messagepreviewer.h b/src/librssguard/gui/messagepreviewer.h index d8f25fb41..f4fab4894 100644 --- a/src/librssguard/gui/messagepreviewer.h +++ b/src/librssguard/gui/messagepreviewer.h @@ -3,7 +3,7 @@ #ifndef MESSAGEPREVIEWER_H #define MESSAGEPREVIEWER_H -#include +#include "gui/tabcontent.h" #include "core/message.h" #include "services/abstract/label.h" @@ -11,6 +11,7 @@ #include #include +#include #include class QGridLayout; @@ -32,7 +33,7 @@ class LabelToolbarAction : public QAction { QPointer