bug-fix: fix heading toolbar button

This commit is contained in:
Le Tan 2017-12-04 20:37:02 +08:00
parent 9f0963eace
commit d49433f91d
5 changed files with 144 additions and 33 deletions

View File

@ -49,7 +49,7 @@ QMenu::icon {
QMenu::item { QMenu::item {
padding: 5px 30px 5px 30px; padding: 5px 30px 5px 30px;
background: 1px solid transparent; border: 1px solid transparent;
} }
QMenu::item:selected { QMenu::item:selected {
@ -250,6 +250,47 @@ QPushButton[DangerBtn="true"]:hover {
border-color: @pushbutton_dangerbtn_hover_border; border-color: @pushbutton_dangerbtn_hover_border;
background-color: @pushbutton_dangerbtn_hover_bg; background-color: @pushbutton_dangerbtn_hover_bg;
} }
VButtonMenuItem {
padding: 5px;
padding-right: 30px;
border: 1px solid transparent;
background-color: transparent;
min-width: -1;
text-align: left;
}
VButtonMenuItem[Heading1="true"] {
font-size: 22pt;
}
VButtonMenuItem[Heading2="true"] {
font-size: 20pt;
}
VButtonMenuItem[Heading3="true"] {
font-size: 18pt;
}
VButtonMenuItem[Heading4="true"] {
font-size: 16pt;
}
VButtonMenuItem[Heading5="true"] {
font-size: 14pt;
}
VButtonMenuItem[Heading6="true"] {
font-size: 14pt;
}
VButtonMenuItem:hover {
background-color: @menubar_item_selected_bg;
}
VButtonMenuItem:focus {
background-color: @menubar_item_selected_bg;
}
/* End QPushButton*/ /* End QPushButton*/
/* QComboBox */ /* QComboBox */

View File

@ -99,7 +99,8 @@ SOURCES += main.cpp\
vtoolbox.cpp \ vtoolbox.cpp \
vinsertselector.cpp \ vinsertselector.cpp \
utils/vclipboardutils.cpp \ utils/vclipboardutils.cpp \
vpalette.cpp vpalette.cpp \
vbuttonmenuitem.cpp
HEADERS += vmainwindow.h \ HEADERS += vmainwindow.h \
vdirectorytree.h \ vdirectorytree.h \
@ -185,7 +186,8 @@ HEADERS += vmainwindow.h \
vtoolbox.h \ vtoolbox.h \
vinsertselector.h \ vinsertselector.h \
utils/vclipboardutils.h \ utils/vclipboardutils.h \
vpalette.h vpalette.h \
vbuttonmenuitem.h
RESOURCES += \ RESOURCES += \
vnote.qrc \ vnote.qrc \

21
src/vbuttonmenuitem.cpp Normal file
View File

@ -0,0 +1,21 @@
#include "vbuttonmenuitem.h"
#include <QAction>
VButtonMenuItem::VButtonMenuItem(QAction *p_action, QWidget *p_parent)
: QPushButton(p_parent), m_action(p_action)
{
init();
}
VButtonMenuItem::VButtonMenuItem(QAction *p_action, const QString &p_text, QWidget *p_parent)
: QPushButton(p_text, p_parent), m_action(p_action)
{
init();
}
void VButtonMenuItem::init()
{
connect(this, &QPushButton::clicked,
m_action, &QAction::triggered);
}

23
src/vbuttonmenuitem.h Normal file
View File

@ -0,0 +1,23 @@
#ifndef VBUTTONMENUITEM_H
#define VBUTTONMENUITEM_H
#include <QPushButton>
class QAction;
class VButtonMenuItem : public QPushButton
{
Q_OBJECT
public:
explicit VButtonMenuItem(QAction *p_action, QWidget *p_parent = nullptr);
VButtonMenuItem(QAction *p_action, const QString &p_text, QWidget *p_parent = nullptr);
private:
void init();
QAction *m_action;
};
#endif // VBUTTONMENUITEM_H

View File

@ -32,6 +32,7 @@
#include "vfilesessioninfo.h" #include "vfilesessioninfo.h"
#include "vsnippetlist.h" #include "vsnippetlist.h"
#include "vtoolbox.h" #include "vtoolbox.h"
#include "vbuttonmenuitem.h"
VMainWindow *g_mainWin; VMainWindow *g_mainWin;
@ -2731,48 +2732,71 @@ void VMainWindow::initHeadingButton(QToolBar *p_tb)
m_headingBtn->setEnabled(false); m_headingBtn->setEnabled(false);
QMenu *menu = new QMenu(this); QMenu *menu = new QMenu(this);
QAction *act = menu->addAction(tr("Heading 1\t%1").arg(VUtils::getShortcutText("Ctrl+1"))); QString text(tr("Heading %1"));
QFont font = act->font(); QString tooltip(tr("Heading %1\t%2"));
int ps = font.pointSize(); QWidgetAction *wact = new QWidgetAction(menu);
font.setBold(true); wact->setData(1);
font.setPointSize(ps + 8); VButtonMenuItem *w = new VButtonMenuItem(wact, text.arg(1), this);
act->setFont(font); w->setToolTip(tooltip.arg(1).arg(VUtils::getShortcutText("Ctrl+1")));
act->setData(1); w->setProperty("Heading1", true);
wact->setDefaultWidget(w);
menu->addAction(wact);
act = menu->addAction(tr("Heading 2\t%1").arg(VUtils::getShortcutText("Ctrl+2"))); wact = new QWidgetAction(menu);
font.setPointSize(ps + 6); wact->setData(2);
act->setFont(font); w = new VButtonMenuItem(wact, text.arg(2), this);
act->setData(2); w->setToolTip(tooltip.arg(2).arg(VUtils::getShortcutText("Ctrl+2")));
w->setProperty("Heading2", true);
wact->setDefaultWidget(w);
menu->addAction(wact);
act = menu->addAction(tr("Heading 3\t%1").arg(VUtils::getShortcutText("Ctrl+3"))); wact = new QWidgetAction(menu);
font.setPointSize(ps + 4); wact->setData(3);
act->setFont(font); w = new VButtonMenuItem(wact, text.arg(3), this);
act->setData(3); w->setToolTip(tooltip.arg(3).arg(VUtils::getShortcutText("Ctrl+3")));
w->setProperty("Heading3", true);
wact->setDefaultWidget(w);
menu->addAction(wact);
act = menu->addAction(tr("Heading 4\t%1").arg(VUtils::getShortcutText("Ctrl+4"))); wact = new QWidgetAction(menu);
font.setPointSize(ps + 2); wact->setData(4);
act->setFont(font); w = new VButtonMenuItem(wact, text.arg(4), this);
act->setData(4); w->setToolTip(tooltip.arg(4).arg(VUtils::getShortcutText("Ctrl+4")));
w->setProperty("Heading4", true);
wact->setDefaultWidget(w);
menu->addAction(wact);
act = menu->addAction(tr("Heading 5\t%1").arg(VUtils::getShortcutText("Ctrl+5"))); wact = new QWidgetAction(menu);
font.setPointSize(ps + 2); wact->setData(5);
act->setFont(font); w = new VButtonMenuItem(wact, text.arg(5), this);
act->setData(5); w->setToolTip(tooltip.arg(5).arg(VUtils::getShortcutText("Ctrl+5")));
w->setProperty("Heading5", true);
wact->setDefaultWidget(w);
menu->addAction(wact);
act = menu->addAction(tr("Heading 6\t%1").arg(VUtils::getShortcutText("Ctrl+6"))); wact = new QWidgetAction(menu);
font.setPointSize(ps + 2); wact->setData(6);
act->setFont(font); w = new VButtonMenuItem(wact, text.arg(6), this);
act->setData(6); w->setToolTip(tooltip.arg(6).arg(VUtils::getShortcutText("Ctrl+6")));
w->setProperty("Heading6", true);
wact->setDefaultWidget(w);
menu->addAction(wact);
act = menu->addAction(tr("Clear\t%1").arg(VUtils::getShortcutText("Ctrl+7"))); wact = new QWidgetAction(menu);
act->setData(0); wact->setData(0);
w = new VButtonMenuItem(wact, tr("Clear"), this);
w->setToolTip(tr("Clear\t%1").arg(VUtils::getShortcutText("Ctrl+7")));
wact->setDefaultWidget(w);
menu->addAction(wact);
connect(menu, &QMenu::triggered, connect(menu, &QMenu::triggered,
this, [this](QAction *p_action) { this, [this, menu](QAction *p_action) {
if (m_curTab) { if (m_curTab) {
int level = p_action->data().toInt(); int level = p_action->data().toInt();
m_curTab->decorateText(TextDecoration::Heading, level); m_curTab->decorateText(TextDecoration::Heading, level);
} }
menu->hide();
}); });
m_headingBtn->setMenu(menu); m_headingBtn->setMenu(menu);