New corner/status buttons.
This commit is contained in:
parent
0ceec084b2
commit
29664caf9d
5 changed files with 58 additions and 33 deletions
|
@ -11,6 +11,7 @@ Added:
|
||||||
Changed:
|
Changed:
|
||||||
<ul>
|
<ul>
|
||||||
<li>Tab order and default widget changed for category/feed add/edit dialogs.</li>
|
<li>Tab order and default widget changed for category/feed add/edit dialogs.</li>
|
||||||
|
<li>New style for tab widget corner buttons.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<hr/>
|
<hr/>
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include <QStyleOption>
|
#include <QStyleOption>
|
||||||
|
|
||||||
|
|
||||||
PlainToolButton::PlainToolButton(QWidget *parent) : QToolButton(parent) {
|
PlainToolButton::PlainToolButton(QWidget *parent) : QToolButton(parent), m_padding(0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
PlainToolButton::~PlainToolButton() {
|
PlainToolButton::~PlainToolButton() {
|
||||||
|
@ -36,9 +36,24 @@ void PlainToolButton::paintEvent(QPaintEvent *e) {
|
||||||
QPainter p(this);
|
QPainter p(this);
|
||||||
QRect rect(QPoint(0, 0), size());
|
QRect rect(QPoint(0, 0), size());
|
||||||
|
|
||||||
// TODO: adjustable "padding" of the icon.
|
// Set padding.
|
||||||
//rect.adjust(2, 2, -2, -2);
|
rect.adjust(m_padding, m_padding, -m_padding, -m_padding);
|
||||||
|
|
||||||
// Paint the icon.
|
// Paint the icon.
|
||||||
|
if (underMouse()) {
|
||||||
|
p.setOpacity(0.7);
|
||||||
|
}
|
||||||
|
|
||||||
icon().paint(&p, rect);
|
icon().paint(&p, rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int PlainToolButton::padding() const {
|
||||||
|
return m_padding;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PlainToolButton::setPadding(int padding) {
|
||||||
|
m_padding = padding;
|
||||||
|
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,9 +29,16 @@ class PlainToolButton : public QToolButton {
|
||||||
explicit PlainToolButton(QWidget *parent = 0);
|
explicit PlainToolButton(QWidget *parent = 0);
|
||||||
virtual ~PlainToolButton();
|
virtual ~PlainToolButton();
|
||||||
|
|
||||||
|
// Padding changers.
|
||||||
|
int padding() const;
|
||||||
|
void setPadding(int padding);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Custom look.
|
// Custom look.
|
||||||
void paintEvent(QPaintEvent *e);
|
void paintEvent(QPaintEvent *e);
|
||||||
|
|
||||||
|
private:
|
||||||
|
int m_padding;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CLOSEBUTTON_H
|
#endif // CLOSEBUTTON_H
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
#include <QToolButton>
|
#include <QToolButton>
|
||||||
|
|
||||||
|
|
||||||
TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent), m_mainMenu(NULL) {
|
TabWidget::TabWidget(QWidget *parent) : QTabWidget(parent), m_menuMain(NULL) {
|
||||||
setTabBar(new TabBar(this));
|
setTabBar(new TabBar(this));
|
||||||
setupCornerButton();
|
setupCornerButton();
|
||||||
setupMainMenuButton();
|
setupMainMenuButton();
|
||||||
|
@ -44,46 +44,48 @@ TabWidget::~TabWidget() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabWidget::setupCornerButton() {
|
void TabWidget::setupCornerButton() {
|
||||||
m_cornerButton = new PlainToolButton(this);
|
m_btnAddTab = new PlainToolButton(this);
|
||||||
m_cornerButton->setAutoRaise(true);
|
m_btnAddTab->setAutoRaise(true);
|
||||||
m_cornerButton->setToolTip(tr("Open new web browser tab."));
|
m_btnAddTab->setPadding(3);
|
||||||
m_cornerButton->setIcon(IconThemeFactory::instance()->fromTheme("list-add"));
|
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() {
|
void TabWidget::setupMainMenuButton() {
|
||||||
m_menuButton = new PlainToolButton(this);
|
m_btnMainMenu = new PlainToolButton(this);
|
||||||
m_menuButton->setAutoRaise(true);
|
m_btnMainMenu->setAutoRaise(true);
|
||||||
m_menuButton->setToolTip(tr("Displays main menu."));
|
m_btnMainMenu->setPadding(3);
|
||||||
m_menuButton->setIcon(IconThemeFactory::instance()->fromTheme("application-menu"));
|
m_btnMainMenu->setToolTip(tr("Displays main menu."));
|
||||||
m_menuButton->setPopupMode(QToolButton::InstantPopup);
|
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() {
|
void TabWidget::openMainMenu() {
|
||||||
if (m_mainMenu == NULL) {
|
if (m_menuMain == NULL) {
|
||||||
m_mainMenu = new QMenu(tr("Main menu"), this);
|
m_menuMain = new QMenu(tr("Main menu"), this);
|
||||||
m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuFile);
|
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuFile);
|
||||||
m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuView);
|
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuView);
|
||||||
m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuFeeds);
|
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuFeeds);
|
||||||
m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuMessages);
|
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuMessages);
|
||||||
m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuTools);
|
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuTools);
|
||||||
m_mainMenu->addMenu(FormMain::instance()->m_ui->m_menuHelp);
|
m_menuMain->addMenu(FormMain::instance()->m_ui->m_menuHelp);
|
||||||
}
|
}
|
||||||
|
|
||||||
QPoint button_position = m_menuButton->pos();
|
QPoint button_position = m_btnMainMenu->pos();
|
||||||
QSize target_size = m_menuButton->size() / 2.0;
|
QSize target_size = m_btnMainMenu->size() / 2.0;
|
||||||
|
|
||||||
button_position.setX(button_position.x() + target_size.width());
|
button_position.setX(button_position.x() + target_size.width());
|
||||||
button_position.setY(button_position.y() + target_size.height());
|
button_position.setY(button_position.y() + target_size.height());
|
||||||
|
|
||||||
m_mainMenu->exec(mapToGlobal(button_position));
|
m_menuMain->exec(mapToGlobal(button_position));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabWidget::checkTabBarVisibility() {
|
void TabWidget::checkTabBarVisibility() {
|
||||||
|
@ -139,7 +141,7 @@ void TabWidget::setupIcons() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup corner button icon.
|
// 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) {
|
bool TabWidget::closeTab(int index) {
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
|
|
||||||
class QMenu;
|
class QMenu;
|
||||||
class QToolButton;
|
class PlainToolButton;
|
||||||
class Message;
|
class Message;
|
||||||
class FeedMessageViewer;
|
class FeedMessageViewer;
|
||||||
|
|
||||||
|
@ -124,9 +124,9 @@ class TabWidget : public QTabWidget {
|
||||||
const QUrl &initial_url = QUrl());
|
const QUrl &initial_url = QUrl());
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QToolButton *m_cornerButton;
|
PlainToolButton *m_btnAddTab;
|
||||||
QToolButton *m_menuButton;
|
PlainToolButton *m_btnMainMenu;
|
||||||
QMenu *m_mainMenu;
|
QMenu *m_menuMain;
|
||||||
FeedMessageViewer *m_feedMessageViewer;
|
FeedMessageViewer *m_feedMessageViewer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue