annotate widgets/KeyReference.h @ 1551:e79731086b0f

Fixes to NoteLayer, particularly to calculation of vertical scale when model unit is not Hz. To avoid inconsistency we now behave as if the unit is always Hz from the point of view of the external API and display, converting at the point where we obtain values from the events themselves. Also various fixes to editing.
author Chris Cannam
date Thu, 21 Nov 2019 14:02:57 +0000
parents 05d614f6e46d
children
rev   line source
Chris@281 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@281 2
Chris@281 3 /*
Chris@281 4 Sonic Visualiser
Chris@281 5 An audio file viewer and annotation editor.
Chris@281 6 Centre for Digital Music, Queen Mary, University of London.
Chris@281 7 This file copyright 2007 QMUL.
Chris@281 8
Chris@281 9 This program is free software; you can redistribute it and/or
Chris@281 10 modify it under the terms of the GNU General Public License as
Chris@281 11 published by the Free Software Foundation; either version 2 of the
Chris@281 12 License, or (at your option) any later version. See the file
Chris@281 13 COPYING included with this distribution for more information.
Chris@281 14 */
Chris@281 15
Chris@1407 16 #ifndef SV_KEY_REFERENCE_H
Chris@1407 17 #define SV_KEY_REFERENCE_H
Chris@281 18
Chris@281 19 #include <QObject>
Chris@281 20 #include <QString>
Chris@281 21 #include <vector>
Chris@281 22 #include <map>
Chris@740 23 #include <QKeySequence>
Chris@281 24
Chris@281 25 class QAction;
Chris@281 26 class QTextEdit;
Chris@282 27 class QDialog;
Chris@282 28 class QAbstractButton;
Chris@281 29
Chris@281 30 class KeyReference : public QObject
Chris@281 31 {
Chris@281 32 Q_OBJECT
Chris@281 33
Chris@281 34 public:
Chris@281 35 KeyReference();
Chris@281 36 virtual ~KeyReference();
Chris@281 37
Chris@281 38 void setCategory(QString category);
Chris@281 39
Chris@281 40 void registerShortcut(QAction *, QString overrideName = "");
Chris@281 41 void registerAlternativeShortcut(QAction *, QString alternative);
Chris@740 42 void registerAlternativeShortcut(QAction *, QKeySequence alternative);
Chris@281 43
Chris@281 44 void registerShortcut(QString actionName, QString shortcut, QString tipText);
Chris@281 45 void registerAlternativeShortcut(QString actionName, QString alternative);
Chris@740 46 void registerAlternativeShortcut(QString actionName, QKeySequence alternative);
Chris@281 47
Chris@281 48 void show();
Chris@609 49 void hide();
Chris@281 50
Chris@282 51 protected slots:
Chris@282 52 void dialogButtonClicked(QAbstractButton *);
Chris@282 53
Chris@281 54 protected:
Chris@281 55 struct KeyDetails {
Chris@281 56 QString actionName;
Chris@281 57 QString shortcut;
Chris@281 58 QString tip;
Chris@281 59 std::vector<QString> alternatives;
Chris@281 60 };
Chris@281 61
Chris@281 62 typedef std::vector<KeyDetails> KeyList;
Chris@281 63 typedef std::map<QString, KeyList> CategoryMap;
Chris@281 64 typedef std::vector<QString> CategoryList;
Chris@281 65
Chris@281 66 QString m_currentCategory;
Chris@281 67 CategoryMap m_map;
Chris@281 68 CategoryList m_categoryOrder;
Chris@281 69
Chris@281 70 QTextEdit *m_text;
Chris@282 71 QDialog *m_dialog;
Chris@281 72 };
Chris@281 73
Chris@281 74 #endif