diff --git a/localization/rssguard-cs_CZ.ts b/localization/rssguard-cs_CZ.ts
index 00f1e2833..1cb5b623c 100644
--- a/localization/rssguard-cs_CZ.ts
+++ b/localization/rssguard-cs_CZ.ts
@@ -533,11 +533,11 @@ Warning messagebox title when selected item cannot be edited.
Open selected messages in &internal browser
- &Otevřít vybrané zdrojové články v interním prohlížeči
+ &Otevřít vybrané krátké články v interním prohlížeči
Open selected source articles in &internal browser
- &Otevřít vybrané krátké články v interním prohlížeči
+ &Otevřít vybrané zdrojové články v interním prohlížeči
&Mark all feeds as &read
diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG
index a6d5e2d82..675efa145 100644
--- a/resources/text/CHANGELOG
+++ b/resources/text/CHANGELOG
@@ -11,6 +11,7 @@ Fixed:
Added:
+Toolbutton-based main menu.
User can enable/disable web browser javascript, external plugins and images auto-loading (bug #9).
Custom counts of messages in feed list (issue #14) are now changeable.
Feed list categories expand status is now persistent.
@@ -21,7 +22,7 @@ Added:
Changed:
-Several keayboard shortcuts + accelerators changed.
+Several keyboard shortcuts + accelerators changed.
Message list optimizations done.
"Check for updates" dialog tweaked.
diff --git a/src/gui/cornerbutton.h b/src/gui/cornerbutton.h
index 82c3e7481..b3cdbb685 100644
--- a/src/gui/cornerbutton.h
+++ b/src/gui/cornerbutton.h
@@ -21,6 +21,7 @@
#include
+// TODO: potřebuju extra třídu? mozna presunout do tabwidgetu.
class CornerButton : public QToolButton {
Q_OBJECT
diff --git a/src/gui/formmain.cpp b/src/gui/formmain.cpp
index 27caa1701..be145b499 100755
--- a/src/gui/formmain.cpp
+++ b/src/gui/formmain.cpp
@@ -70,7 +70,6 @@ FormMain::FormMain(QWidget *parent)
addActions(allActions());
// Prepare tabs.
- m_ui->m_tabWidget->setupMainMenuButton();
m_ui->m_tabWidget->initializeTabs();
// Setup some appearance of the window.
diff --git a/src/gui/tabwidget.cpp b/src/gui/tabwidget.cpp
index b85f064cf..80552d6b6 100644
--- a/src/gui/tabwidget.cpp
+++ b/src/gui/tabwidget.cpp
@@ -32,10 +32,10 @@
#include
-TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent) {
+TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent), m_mainMenu(NULL) {
setTabBar(new TabBar(this));
setupCornerButton();
-
+ setupMainMenuButton();
createConnections();
}
@@ -49,26 +49,41 @@ void TabWidget::setupCornerButton() {
}
void TabWidget::setupMainMenuButton() {
- m_mainMenu = new QMenu("Main menu", this);
- m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuFile);
- m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuView);
- m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuFeeds);
- m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuMessages);
- m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuTools);
- m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuHelp);
-
m_menuButton = new QToolButton(this);
m_menuButton->setAutoRaise(true);
+ m_menuButton->setToolTip(tr("Displays main menu."));
m_menuButton->setIcon(IconThemeFactory::instance()->fromTheme("application-menu"));
m_menuButton->setPopupMode(QToolButton::InstantPopup);
- m_menuButton->setMenu(m_mainMenu);
+
+ connect(m_menuButton, SIGNAL(clicked()), this, SLOT(openMainMenu()));
+
setCornerWidget(m_menuButton, Qt::TopLeftCorner);
}
+bool TabWidget::openMainMenu() {
+ if (m_mainMenu == NULL) {
+ m_mainMenu = new QMenu(tr("Main menu"), this);
+ m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuFile);
+ m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuView);
+ m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuFeeds);
+ m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuMessages);
+ m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuTools);
+ m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuHelp);
+ }
+
+ QPoint button_position = m_menuButton->pos();
+ QSize target_size = m_menuButton->size() / 2.0;
+
+ button_position.setX(button_position.x() + target_size.width());
+ button_position.setY(button_position.y() + target_size.height());
+
+ m_mainMenu->exec(mapToGlobal(button_position));
+}
+
void TabWidget::checkTabBarVisibility() {
tabBar()->setVisible(count() > 1 || !Settings::instance()->value(APP_CFG_GUI,
- "hide_tabbar_one_tab",
- true).toBool());
+ "hide_tabbar_one_tab",
+ true).toBool());
}
void TabWidget::tabInserted(int index) {
@@ -224,8 +239,8 @@ int TabWidget::addLinkedBrowser(const QString &initial_url) {
int TabWidget::addLinkedBrowser(const QUrl &initial_url) {
return addBrowser(Settings::instance()->value(APP_CFG_BROWSER,
- "queue_tabs",
- true).toBool(),
+ "queue_tabs",
+ true).toBool(),
false,
initial_url);
}
diff --git a/src/gui/tabwidget.h b/src/gui/tabwidget.h
index f345ffe68..f2f44bd09 100644
--- a/src/gui/tabwidget.h
+++ b/src/gui/tabwidget.h
@@ -63,8 +63,6 @@ class TabWidget : public QTabWidget {
// of main "Feeds" widget.
void initializeTabs();
- void setupMainMenuButton();
-
// Sets up icons for this TabWidget.
void setupIcons();
@@ -79,11 +77,12 @@ class TabWidget : public QTabWidget {
// Sets up properties of custom corner button.
void setupCornerButton();
+ void setupMainMenuButton();
// Handlers of insertin/removing of tabs.
void tabInserted(int index);
void tabRemoved(int index);
-
+
public slots:
// Fixes tabs indexes.
void fixContentAfterIndexChange(int from);
@@ -103,6 +102,8 @@ class TabWidget : public QTabWidget {
bool closeTab(int index);
bool closeCurrentTab();
+ bool openMainMenu();
+
// Closes all "closable" tabs except the active tab.
void closeAllTabsExceptCurrent();