diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG
index 4f9d2d691..76f79217d 100644
--- a/resources/text/CHANGELOG
+++ b/resources/text/CHANGELOG
@@ -11,6 +11,7 @@ Added:
Changed:
- Tab order and default widget changed for category/feed add/edit dialogs.
+- New style for tab widget corner buttons.
diff --git a/src/gui/plaintoolbutton.cpp b/src/gui/plaintoolbutton.cpp
index 035979175..4440e68b1 100644
--- a/src/gui/plaintoolbutton.cpp
+++ b/src/gui/plaintoolbutton.cpp
@@ -24,7 +24,7 @@
#include
-PlainToolButton::PlainToolButton(QWidget *parent) : QToolButton(parent) {
+PlainToolButton::PlainToolButton(QWidget *parent) : QToolButton(parent), m_padding(0) {
}
PlainToolButton::~PlainToolButton() {
@@ -36,9 +36,24 @@ void PlainToolButton::paintEvent(QPaintEvent *e) {
QPainter p(this);
QRect rect(QPoint(0, 0), size());
- // TODO: adjustable "padding" of the icon.
- //rect.adjust(2, 2, -2, -2);
+ // Set padding.
+ rect.adjust(m_padding, m_padding, -m_padding, -m_padding);
// Paint the icon.
+ if (underMouse()) {
+ p.setOpacity(0.7);
+ }
+
icon().paint(&p, rect);
}
+
+int PlainToolButton::padding() const {
+ return m_padding;
+}
+
+void PlainToolButton::setPadding(int padding) {
+ m_padding = padding;
+
+ repaint();
+}
+
diff --git a/src/gui/plaintoolbutton.h b/src/gui/plaintoolbutton.h
index 2d902c882..100a52a12 100644
--- a/src/gui/plaintoolbutton.h
+++ b/src/gui/plaintoolbutton.h
@@ -29,9 +29,16 @@ class PlainToolButton : public QToolButton {
explicit PlainToolButton(QWidget *parent = 0);
virtual ~PlainToolButton();
+ // Padding changers.
+ int padding() const;
+ void setPadding(int padding);
+
protected:
// Custom look.
void paintEvent(QPaintEvent *e);
+
+ private:
+ int m_padding;
};
#endif // CLOSEBUTTON_H
diff --git a/src/gui/tabwidget.cpp b/src/gui/tabwidget.cpp
index 448295632..b81c43175 100644
--- a/src/gui/tabwidget.cpp
+++ b/src/gui/tabwidget.cpp
@@ -32,7 +32,7 @@
#include
-TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent), m_mainMenu(NULL) {
+TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent), m_menuMain(NULL) {
setTabBar(new TabBar(this));
setupCornerButton();
setupMainMenuButton();
@@ -44,46 +44,48 @@ TabWidget::~TabWidget() {
}
void TabWidget::setupCornerButton() {
- m_cornerButton = new PlainToolButton(this);
- m_cornerButton->setAutoRaise(true);
- m_cornerButton->setToolTip(tr("Open new web browser tab."));
- m_cornerButton->setIcon(IconThemeFactory::instance()->fromTheme("list-add"));
+ m_btnAddTab = new PlainToolButton(this);
+ m_btnAddTab->setAutoRaise(true);
+ m_btnAddTab->setPadding(3);
+ m_btnAddTab->setToolTip(tr("Open new web browser tab."));
+ m_btnAddTab->setIcon(IconThemeFactory::instance()->fromTheme("list-add"));
- connect(m_cornerButton, SIGNAL(clicked()), this, SLOT(addEmptyBrowser()));
+ connect(m_btnAddTab, SIGNAL(clicked()), this, SLOT(addEmptyBrowser()));
- setCornerWidget(m_cornerButton, Qt::TopRightCorner);
+ setCornerWidget(m_btnAddTab, Qt::TopRightCorner);
}
void TabWidget::setupMainMenuButton() {
- m_menuButton = new PlainToolButton(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_btnMainMenu = new PlainToolButton(this);
+ m_btnMainMenu->setAutoRaise(true);
+ m_btnMainMenu->setPadding(3);
+ m_btnMainMenu->setToolTip(tr("Displays main menu."));
+ m_btnMainMenu->setIcon(IconThemeFactory::instance()->fromTheme("application-menu"));
+ m_btnMainMenu->setPopupMode(QToolButton::InstantPopup);
- connect(m_menuButton, SIGNAL(clicked()), this, SLOT(openMainMenu()));
+ connect(m_btnMainMenu, SIGNAL(clicked()), this, SLOT(openMainMenu()));
- setCornerWidget(m_menuButton, Qt::TopLeftCorner);
+ setCornerWidget(m_btnMainMenu, Qt::TopLeftCorner);
}
void 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);
+ if (m_menuMain == NULL) {
+ m_menuMain = new QMenu(tr("Main menu"), this);
+ m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuFile);
+ m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuView);
+ m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuFeeds);
+ m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuMessages);
+ m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuTools);
+ m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuHelp);
}
- QPoint button_position = m_menuButton->pos();
- QSize target_size = m_menuButton->size() / 2.0;
+ QPoint button_position = m_btnMainMenu->pos();
+ QSize target_size = m_btnMainMenu->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));
+ m_menuMain->exec(mapToGlobal(button_position));
}
void TabWidget::checkTabBarVisibility() {
@@ -139,7 +141,7 @@ void TabWidget::setupIcons() {
}
// Setup corner button icon.
- m_cornerButton->setIcon(IconThemeFactory::instance()->fromTheme("list-add"));
+ m_btnAddTab->setIcon(IconThemeFactory::instance()->fromTheme("list-add"));
}
bool TabWidget::closeTab(int index) {
diff --git a/src/gui/tabwidget.h b/src/gui/tabwidget.h
index b671d437d..0ff91a1c4 100644
--- a/src/gui/tabwidget.h
+++ b/src/gui/tabwidget.h
@@ -26,7 +26,7 @@
class QMenu;
-class QToolButton;
+class PlainToolButton;
class Message;
class FeedMessageViewer;
@@ -124,9 +124,9 @@ class TabWidget : public QTabWidget {
const QUrl &initial_url = QUrl());
private:
- QToolButton *m_cornerButton;
- QToolButton *m_menuButton;
- QMenu *m_mainMenu;
+ PlainToolButton *m_btnAddTab;
+ PlainToolButton *m_btnMainMenu;
+ QMenu *m_menuMain;
FeedMessageViewer *m_feedMessageViewer;
};