|
From: Tapio V. <aa...@us...> - 2011-02-08 10:04:51
|
Module: editor
Branch: master
Commit: f3f0d5ba459a40947a0e9ccb21aa1c0e1282f2c5
Author: Tapio Vierros <tap...@gm...>
Date: Tue Feb 8 12:04:13 2011 +0200
Refactor NoteLabel::showContextMenu shorter.
---
notelabel.cc | 75 ++++++++++++++++++++++++----------------------------------
1 files changed, 31 insertions(+), 44 deletions(-)
diff --git a/notelabel.cc b/notelabel.cc
index 6f1b840..9f701ed 100644
--- a/notelabel.cc
+++ b/notelabel.cc
@@ -183,62 +183,49 @@ void NoteLabel::updateNote()
void NoteLabel::showContextMenu(const QPoint &pos)
{
- QAction actionFloating(NULL);
- actionFloating.setCheckable(true);
- actionFloating.setChecked(isFloating());
+ QMenu menuContext(NULL);
+ QMenu menuType(tr("Type"), NULL);
- QAction actionLineBreak(NULL);
- actionLineBreak.setCheckable(true);
- actionLineBreak.setChecked(isLineBreak());
+ QAction *actionFloating = menuContext.addAction(tr("Floating"));
+ actionFloating->setCheckable(true);
+ actionFloating->setChecked(isFloating());
- QAction actionNormal(NULL);
- actionNormal.setCheckable(true);
- actionNormal.setChecked(m_note.type == Note::NORMAL);
+ QAction *actionLineBreak = menuContext.addAction(tr("Line break"));
+ actionLineBreak->setCheckable(true);
+ actionLineBreak->setChecked(isLineBreak());
- QAction actionGolden(NULL);
- actionGolden.setCheckable(true);
- actionGolden.setChecked(m_note.type == Note::GOLDEN);
+ menuContext.addSeparator();
+ menuContext.addAction(menuType.menuAction());
- QAction actionFreestyle(NULL);
- actionFreestyle.setCheckable(true);
- actionFreestyle.setChecked(m_note.type == Note::FREESTYLE);
+ QAction *actionNormal = menuType.addAction(tr("Normal"));
+ actionNormal->setCheckable(true);
+ actionNormal->setChecked(m_note.type == Note::NORMAL);
- QAction actionSplit(NULL);
- QAction actionDelete(NULL);
+ QAction *actionGolden = menuType.addAction(tr("Golden"));
+ actionGolden->setCheckable(true);
+ actionGolden->setChecked(m_note.type == Note::GOLDEN);
- QMenu menuContext(NULL);
- QMenu menuType(NULL);
+ QAction *actionFreestyle = menuType.addAction(tr("Freestyle"));
+ actionFreestyle->setCheckable(true);
+ actionFreestyle->setChecked(m_note.type == Note::FREESTYLE);
- menuContext.addAction(&actionFloating);
- menuContext.addSeparator();
- menuContext.addAction(&actionLineBreak);
menuContext.addSeparator();
- menuContext.addAction(menuType.menuAction());
- menuContext.addAction(&actionSplit);
- menuContext.addAction(&actionDelete);
- menuType.addAction(&actionNormal);
- menuType.addAction(&actionGolden);
- menuType.addAction(&actionFreestyle);
-
- actionFloating.setText(tr("Floating"));
- actionLineBreak.setText(tr("Line break"));
- actionNormal.setText(tr("Normal"));
- actionGolden.setText(tr("Golden"));
- actionFreestyle.setText(tr("Freestyle"));
- actionSplit.setText(tr("Split"));
- actionDelete.setText(tr("Delete"));
- menuType.setTitle(tr("Type"));
+ QAction *actionSplit = menuContext.addAction(tr("Split"));
+ QAction *actionDelete = menuContext.addAction(tr("Delete"));
+ // Show maenu and wait for action
QPoint globalPos = mapToGlobal(pos);
QAction *sel = menuContext.exec(globalPos);
NoteGraphWidget* ngw = qobject_cast<NoteGraphWidget*>(parent());
if (sel && ngw) {
- if (sel == &actionSplit) ngw->split(this);
- else if (sel == &actionFloating) ngw->setFloating(this, !isFloating());
- else if (sel == &actionLineBreak) ngw->setLineBreak(this, !isLineBreak());
- else if (sel == &actionNormal) ngw->setType(this, 0);
- else if (sel == &actionGolden) ngw->setType(this, 1);
- else if (sel == &actionFreestyle) ngw->setType(this, 2);
- else if (sel == &actionDelete) ngw->del(this);
+ if (sel == actionSplit) ngw->split(this);
+ else if (sel == actionFloating) ngw->setFloating(this, !isFloating());
+ else if (sel == actionLineBreak) ngw->setLineBreak(this, !isLineBreak());
+ else if (sel == actionNormal) ngw->setType(this, 0);
+ else if (sel == actionGolden) ngw->setType(this, 1);
+ else if (sel == actionFreestyle) ngw->setType(this, 2);
+ else if (sel == actionDelete) ngw->del(this);
}
+ menuType.clear();
+ menuContext.clear();
}
|