Make columns menu for msg view non closable.

This commit is contained in:
Martin Rotter 2020-11-03 20:44:41 +01:00
parent 429b2bf16d
commit 582c5bc675
5 changed files with 19 additions and 10 deletions

View File

@ -50,7 +50,7 @@ void LabelsMenu::keyPressEvent(QKeyEvent* event) {
LabelAction* act = qobject_cast<LabelAction*>(activeAction());
if (act != nullptr && event->key() == Qt::Key::Key_Space) {
act->toggle();
act->toggleCheckState();
}
NonClosableMenu::keyPressEvent(event);
@ -60,10 +60,11 @@ void LabelsMenu::mousePressEvent(QMouseEvent* event) {
LabelAction* act = qobject_cast<LabelAction*>(activeAction());
if (act != nullptr) {
act->toggle();
act->toggleCheckState();
}
else {
NonClosableMenu::mousePressEvent(event);
}
NonClosableMenu::mousePressEvent(event);
}
void LabelsMenu::changeLabelAssignment(Qt::CheckState state) {
@ -121,7 +122,7 @@ Label* LabelAction::label() const {
return m_label;
}
void LabelAction::toggle() {
void LabelAction::toggleCheckState() {
if (m_checkState == Qt::CheckState::Unchecked) {
setCheckState(Qt::CheckState::Checked);
}

View File

@ -42,7 +42,7 @@ class LabelAction : public QAction {
Label* label() const;
public slots:
void toggle();
void toggleCheckState();
signals:
void checkStateChanged(Qt::CheckState state);

View File

@ -15,7 +15,14 @@ void NonClosableMenu::keyPressEvent(QKeyEvent* event) {
}
void NonClosableMenu::mousePressEvent(QMouseEvent* event) {
Q_UNUSED(event)
auto* act = dynamic_cast<QAction*>(activeAction());
if (act != nullptr) {
act->toggle();
}
else {
QMenu::mousePressEvent(event);
}
}
void NonClosableMenu::mouseReleaseEvent(QMouseEvent* event) {

View File

@ -4,7 +4,7 @@
#include <QHeaderView>
TreeViewColumnsMenu::TreeViewColumnsMenu(QHeaderView* parent) : QMenu(parent) {
TreeViewColumnsMenu::TreeViewColumnsMenu(QHeaderView* parent) : NonClosableMenu(parent) {
connect(this, &TreeViewColumnsMenu::aboutToShow, this, &TreeViewColumnsMenu::prepareMenu);
}
@ -17,6 +17,7 @@ void TreeViewColumnsMenu::prepareMenu() {
act->setData(i);
act->setCheckable(true);
act->setChecked(!header_view->isSectionHidden(i));
connect(act, &QAction::toggled, this, &TreeViewColumnsMenu::actionTriggered);
}
}

View File

@ -3,11 +3,11 @@
#ifndef TREEVIEWCOLUMNSMENU_H
#define TREEVIEWCOLUMNSMENU_H
#include <QMenu>
#include "gui/nonclosablemenu.h"
class QHeaderView;
class TreeViewColumnsMenu : public QMenu {
class TreeViewColumnsMenu : public NonClosableMenu {
public:
explicit TreeViewColumnsMenu(QHeaderView* parent);