Lang update, main menu fixes.

This commit is contained in:
Martin Rotter 2014-03-14 07:58:05 +01:00
parent 96bef70547
commit 0866bfd8e9
6 changed files with 39 additions and 22 deletions

View File

@ -533,11 +533,11 @@ Warning messagebox title when selected item cannot be edited.</extracomment>
</message> </message>
<message> <message>
<source>Open selected messages in &amp;internal browser</source> <source>Open selected messages in &amp;internal browser</source>
<translation>&amp;Otevřít vybrané zdrojové články v interním prohlížeči</translation> <translation>&amp;Otevřít vybrané krátké články v interním prohlížeči</translation>
</message> </message>
<message> <message>
<source>Open selected source articles in &amp;internal browser</source> <source>Open selected source articles in &amp;internal browser</source>
<translation>&amp;Otevřít vybrané krátké články v interním prohlížeči</translation> <translation>&amp;Otevřít vybrané zdrojové články v interním prohlížeči</translation>
</message> </message>
<message> <message>
<source>&amp;Mark all feeds as &amp;read</source> <source>&amp;Mark all feeds as &amp;read</source>

View File

@ -11,6 +11,7 @@ Fixed:
Added: Added:
<ul> <ul>
<li>Toolbutton-based main menu.</li>
<li>User can enable/disable web browser javascript, external plugins and images auto-loading (bug #9).</li> <li>User can enable/disable web browser javascript, external plugins and images auto-loading (bug #9).</li>
<li>Custom counts of messages in feed list (issue #14) are now changeable.</li> <li>Custom counts of messages in feed list (issue #14) are now changeable.</li>
<li>Feed list categories expand status is now persistent.</li> <li>Feed list categories expand status is now persistent.</li>
@ -21,7 +22,7 @@ Added:
Changed: Changed:
<ul> <ul>
<li>Several keayboard shortcuts + accelerators changed.</li> <li>Several keyboard shortcuts + accelerators changed.</li>
<li>Message list optimizations done.</li> <li>Message list optimizations done.</li>
<li>"Check for updates" dialog tweaked.</li> <li>"Check for updates" dialog tweaked.</li>
</ul> </ul>

View File

@ -21,6 +21,7 @@
#include <QToolButton> #include <QToolButton>
// TODO: potřebuju extra třídu? mozna presunout do tabwidgetu.
class CornerButton : public QToolButton { class CornerButton : public QToolButton {
Q_OBJECT Q_OBJECT

View File

@ -70,7 +70,6 @@ FormMain::FormMain(QWidget *parent)
addActions(allActions()); addActions(allActions());
// Prepare tabs. // Prepare tabs.
m_ui->m_tabWidget->setupMainMenuButton();
m_ui->m_tabWidget->initializeTabs(); m_ui->m_tabWidget->initializeTabs();
// Setup some appearance of the window. // Setup some appearance of the window.

View File

@ -32,10 +32,10 @@
#include <QMenu> #include <QMenu>
TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent) { TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent), m_mainMenu(NULL) {
setTabBar(new TabBar(this)); setTabBar(new TabBar(this));
setupCornerButton(); setupCornerButton();
setupMainMenuButton();
createConnections(); createConnections();
} }
@ -49,26 +49,41 @@ void TabWidget::setupCornerButton() {
} }
void TabWidget::setupMainMenuButton() { 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 = new QToolButton(this);
m_menuButton->setAutoRaise(true); m_menuButton->setAutoRaise(true);
m_menuButton->setToolTip(tr("Displays main menu."));
m_menuButton->setIcon(IconThemeFactory::instance()->fromTheme("application-menu")); m_menuButton->setIcon(IconThemeFactory::instance()->fromTheme("application-menu"));
m_menuButton->setPopupMode(QToolButton::InstantPopup); m_menuButton->setPopupMode(QToolButton::InstantPopup);
m_menuButton->setMenu(m_mainMenu);
connect(m_menuButton, SIGNAL(clicked()), this, SLOT(openMainMenu()));
setCornerWidget(m_menuButton, Qt::TopLeftCorner); 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() { void TabWidget::checkTabBarVisibility() {
tabBar()->setVisible(count() > 1 || !Settings::instance()->value(APP_CFG_GUI, tabBar()->setVisible(count() > 1 || !Settings::instance()->value(APP_CFG_GUI,
"hide_tabbar_one_tab", "hide_tabbar_one_tab",
true).toBool()); true).toBool());
} }
void TabWidget::tabInserted(int index) { void TabWidget::tabInserted(int index) {
@ -224,8 +239,8 @@ int TabWidget::addLinkedBrowser(const QString &initial_url) {
int TabWidget::addLinkedBrowser(const QUrl &initial_url) { int TabWidget::addLinkedBrowser(const QUrl &initial_url) {
return addBrowser(Settings::instance()->value(APP_CFG_BROWSER, return addBrowser(Settings::instance()->value(APP_CFG_BROWSER,
"queue_tabs", "queue_tabs",
true).toBool(), true).toBool(),
false, false,
initial_url); initial_url);
} }

View File

@ -63,8 +63,6 @@ class TabWidget : public QTabWidget {
// of main "Feeds" widget. // of main "Feeds" widget.
void initializeTabs(); void initializeTabs();
void setupMainMenuButton();
// Sets up icons for this TabWidget. // Sets up icons for this TabWidget.
void setupIcons(); void setupIcons();
@ -79,6 +77,7 @@ class TabWidget : public QTabWidget {
// Sets up properties of custom corner button. // Sets up properties of custom corner button.
void setupCornerButton(); void setupCornerButton();
void setupMainMenuButton();
// Handlers of insertin/removing of tabs. // Handlers of insertin/removing of tabs.
void tabInserted(int index); void tabInserted(int index);
@ -103,6 +102,8 @@ class TabWidget : public QTabWidget {
bool closeTab(int index); bool closeTab(int index);
bool closeCurrentTab(); bool closeCurrentTab();
bool openMainMenu();
// Closes all "closable" tabs except the active tab. // Closes all "closable" tabs except the active tab.
void closeAllTabsExceptCurrent(); void closeAllTabsExceptCurrent();