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,