diff --git a/src/core/defs.h.in b/src/core/defs.h.in index decdacfb8..5819a065b 100755 --- a/src/core/defs.h.in +++ b/src/core/defs.h.in @@ -39,6 +39,8 @@ #define APP_CFG_PROXY "proxy" #define APP_CFG_CUTS "keyboard" #define APP_CFG_BROWSER "browser" +#define APP_CFG_MESSAGES "messages" +#define APP_CFG_FEEDS "feeds" #define APP_PREFIX "@CMAKE_INSTALL_PREFIX@" #define APP_REVISION "@APP_REVISION@" diff --git a/src/core/messagesmodel.h b/src/core/messagesmodel.h index 6689e9a3f..ac266b944 100644 --- a/src/core/messagesmodel.h +++ b/src/core/messagesmodel.h @@ -22,6 +22,7 @@ class Message { friend class WebBrowser; friend class MessagesModel; + friend class MessagesView; }; diff --git a/src/gui/feedmessageviewer.cpp b/src/gui/feedmessageviewer.cpp index 6da8bbb34..1c6ab1471 100644 --- a/src/gui/feedmessageviewer.cpp +++ b/src/gui/feedmessageviewer.cpp @@ -37,6 +37,9 @@ void FeedMessageViewer::createConnections() { connect(m_messagesView, SIGNAL(openMessageNewTabRequested(Message)), FormMain::getInstance()->m_ui->m_tabWidget, SLOT(addBrowserWithMessage(Message))); + connect(m_messagesView, SIGNAL(openLinkMessageNewTabRequested(QString)), + FormMain::getInstance()->m_ui->m_tabWidget, + SLOT(addLinkedBrowser(QString))); // Toolbar forwardings. connect(FormMain::getInstance()->m_ui->m_actionSwitchImportanceOfSelectedMessages, diff --git a/src/gui/formsettings.cpp b/src/gui/formsettings.cpp index b2e23c7e0..a7bacabc6 100755 --- a/src/gui/formsettings.cpp +++ b/src/gui/formsettings.cpp @@ -124,7 +124,14 @@ void FormSettings::changeBrowserProgressColor() { } void FormSettings::loadFeedsMessages() { + Settings *settings = Settings::getInstance(); + m_ui->m_cmbExternalBrowserPreset->addItem("Chromium", "aa %1"); + + m_ui->m_txtExternalBrowserExecutable->setText(settings->value(APP_CFG_MESSAGES, + "external_browser_executable").toString()); + m_ui->m_txtExternalBrowserArguments->setText(settings->value(APP_CFG_MESSAGES, + "external_browser_arguments").toString()); } void FormSettings::saveFeedsMessages() { diff --git a/src/gui/formsettings.ui b/src/gui/formsettings.ui index 672223611..3364cc835 100644 --- a/src/gui/formsettings.ui +++ b/src/gui/formsettings.ui @@ -7,7 +7,7 @@ 0 0 803 - 373 + 410 diff --git a/src/gui/messagesview.cpp b/src/gui/messagesview.cpp index 3b56f0d4a..4deff214e 100644 --- a/src/gui/messagesview.cpp +++ b/src/gui/messagesview.cpp @@ -182,12 +182,13 @@ void MessagesView::openSelectedSourceArticlesExternally() { } void MessagesView::openSelectedSourceMessagesInternally() { - // TODO: otevre vybrane zpravy ze zdrojovych webz v internch tabech + foreach (const QModelIndex &index, selectionModel()->selectedRows()) { + // TODO: What to do with messages w/o link? + emit openLinkMessageNewTabRequested(m_sourceModel->messageAt(m_proxyModel->mapToSource(index).row()).m_url); + } } void MessagesView::openSelectedMessagesInternally() { - // TODO: otevre vybrane nactene zpravy v internich tabech - foreach (const QModelIndex &index, selectionModel()->selectedRows()) { emit openMessageNewTabRequested(m_sourceModel->messageAt(m_proxyModel->mapToSource(index).row())); } diff --git a/src/gui/messagesview.h b/src/gui/messagesview.h index 380c4cca1..e478c5fd3 100755 --- a/src/gui/messagesview.h +++ b/src/gui/messagesview.h @@ -51,6 +51,7 @@ class MessagesView : public QTreeView { const QItemSelection &deselected); signals: + void openLinkMessageNewTabRequested(const QString &link); void openMessageNewTabRequested(const Message &message); void currentMessageChanged(const Message &message); void currentMessageRemoved(); diff --git a/src/gui/tabwidget.cpp b/src/gui/tabwidget.cpp index 036678cdc..75267a9bc 100644 --- a/src/gui/tabwidget.cpp +++ b/src/gui/tabwidget.cpp @@ -184,6 +184,10 @@ int TabWidget::addEmptyBrowser() { return addBrowser(false, true); } +int TabWidget::addLinkedBrowser(const QString &initial_url) { + return addLinkedBrowser(QUrl(initial_url)); +} + int TabWidget::addLinkedBrowser(const QUrl &initial_url) { return addBrowser(Settings::getInstance()->value(APP_CFG_BROWSER, "queue_tabs", diff --git a/src/gui/tabwidget.h b/src/gui/tabwidget.h index 784cfd8eb..aadf1bf34 100644 --- a/src/gui/tabwidget.h +++ b/src/gui/tabwidget.h @@ -81,6 +81,7 @@ class TabWidget : public QTabWidget { // Adds new WebBrowser with link. This is used when user // selects to "Open link in new tab.". int addLinkedBrowser(const QUrl &initial_url = QUrl()); + int addLinkedBrowser(const QString &initial_url); // General method for adding WebBrowsers. int addBrowser(bool move_after_current,