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 {
padding: 5px 30px 5px 30px;
background: 1px solid transparent;
border: 1px solid transparent;
}
QMenu::item:selected {
@ -250,6 +250,47 @@ QPushButton[DangerBtn="true"]:hover {
border-color: @pushbutton_dangerbtn_hover_border;
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*/
/* QComboBox */

View File

@ -99,7 +99,8 @@ SOURCES += main.cpp\
vtoolbox.cpp \
vinsertselector.cpp \
utils/vclipboardutils.cpp \
vpalette.cpp
vpalette.cpp \
vbuttonmenuitem.cpp
HEADERS += vmainwindow.h \
vdirectorytree.h \
@ -185,7 +186,8 @@ HEADERS += vmainwindow.h \
vtoolbox.h \
vinsertselector.h \
utils/vclipboardutils.h \
vpalette.h
vpalette.h \
vbuttonmenuitem.h
RESOURCES += \
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 "vsnippetlist.h"
#include "vtoolbox.h"
#include "vbuttonmenuitem.h"
VMainWindow *g_mainWin;
@ -2731,48 +2732,71 @@ void VMainWindow::initHeadingButton(QToolBar *p_tb)
m_headingBtn->setEnabled(false);
QMenu *menu = new QMenu(this);
QAction *act = menu->addAction(tr("Heading 1\t%1").arg(VUtils::getShortcutText("Ctrl+1")));
QFont font = act->font();
int ps = font.pointSize();
font.setBold(true);
font.setPointSize(ps + 8);
act->setFont(font);
act->setData(1);
QString text(tr("Heading %1"));
QString tooltip(tr("Heading %1\t%2"));
QWidgetAction *wact = new QWidgetAction(menu);
wact->setData(1);
VButtonMenuItem *w = new VButtonMenuItem(wact, text.arg(1), this);
w->setToolTip(tooltip.arg(1).arg(VUtils::getShortcutText("Ctrl+1")));
w->setProperty("Heading1", true);
wact->setDefaultWidget(w);
menu->addAction(wact);
act = menu->addAction(tr("Heading 2\t%1").arg(VUtils::getShortcutText("Ctrl+2")));
font.setPointSize(ps + 6);
act->setFont(font);
act->setData(2);
wact = new QWidgetAction(menu);
wact->setData(2);
w = new VButtonMenuItem(wact, text.arg(2), this);
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")));
font.setPointSize(ps + 4);
act->setFont(font);
act->setData(3);
wact = new QWidgetAction(menu);
wact->setData(3);
w = new VButtonMenuItem(wact, text.arg(3), this);
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")));
font.setPointSize(ps + 2);
act->setFont(font);
act->setData(4);
wact = new QWidgetAction(menu);
wact->setData(4);
w = new VButtonMenuItem(wact, text.arg(4), this);
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")));
font.setPointSize(ps + 2);
act->setFont(font);
act->setData(5);
wact = new QWidgetAction(menu);
wact->setData(5);
w = new VButtonMenuItem(wact, text.arg(5), this);
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")));
font.setPointSize(ps + 2);
act->setFont(font);
act->setData(6);
wact = new QWidgetAction(menu);
wact->setData(6);
w = new VButtonMenuItem(wact, text.arg(6), this);
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")));
act->setData(0);
wact = new QWidgetAction(menu);
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,
this, [this](QAction *p_action) {
this, [this, menu](QAction *p_action) {
if (m_curTab) {
int level = p_action->data().toInt();
m_curTab->decorateText(TextDecoration::Heading, level);
}
menu->hide();
});
m_headingBtn->setMenu(menu);