Introduce ActionGroup subclass
This commit is contained in:
57
include/ActionGroup.h
Normal file
57
include/ActionGroup.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Editor.h - declaration of Editor class
|
||||
*
|
||||
* Copyright (c) 2014 Lukas W <lukaswhl/at/gmail.com>
|
||||
*
|
||||
* This file is part of LMMS - http://lmms.io
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this program (see COPYING); if not, write to the
|
||||
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301 USA.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#ifndef ACTION_GROUP_H
|
||||
#define ACTION_GROUP_H
|
||||
|
||||
#include <QActionGroup>
|
||||
|
||||
/// \brief Convenience subclass of QActionGroup
|
||||
///
|
||||
/// This class provides the same functionality as QActionGroup, but in addition
|
||||
/// has the actionTriggered(int) signal.
|
||||
/// It also sets every added action's checkable property to true.
|
||||
class ActionGroup : public QActionGroup
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ActionGroup(QObject* parent);
|
||||
|
||||
QAction* addAction(QAction *a);
|
||||
QAction* addAction(const QString &text);
|
||||
QAction* addAction(const QIcon &icon, const QString &text);
|
||||
|
||||
signals:
|
||||
/// This signal is emitted when the action at the given index is triggered.
|
||||
void triggered(int index);
|
||||
|
||||
private slots:
|
||||
void actionTriggered_(QAction* action);
|
||||
|
||||
private:
|
||||
QList<QAction*> m_actions;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -134,9 +134,7 @@ protected slots:
|
||||
void setEditMode(int mode);
|
||||
|
||||
void setProgressionType(AutomationPattern::ProgressionTypes type);
|
||||
void setProgressionDiscrete();
|
||||
void setProgressionLinear();
|
||||
void setProgressionHermite();
|
||||
void setProgressionType(int type);
|
||||
void setTension();
|
||||
|
||||
void copySelectedValues();
|
||||
|
||||
@@ -32,9 +32,6 @@
|
||||
#include "TimeLineWidget.h"
|
||||
#include "ToolButton.h"
|
||||
|
||||
// Forward declarations
|
||||
class QActionGroup;
|
||||
|
||||
/// \brief Superclass for editors with a toolbar.
|
||||
///
|
||||
/// Those editors include the Song Editor, the Automation Editor, B&B Editor,
|
||||
@@ -45,23 +42,11 @@ class Editor : public QMainWindow
|
||||
public:
|
||||
void setPauseIcon(bool displayPauseIcon=true);
|
||||
|
||||
int editMode() const;
|
||||
void setEditMode(int mode);
|
||||
|
||||
signals:
|
||||
void editModeChanged(int);
|
||||
|
||||
protected:
|
||||
QAction* addEditMode(const QIcon &icon, const QString &text, const QString& whatsThis=QString());
|
||||
|
||||
protected slots:
|
||||
virtual void play();
|
||||
virtual void record();
|
||||
virtual void recordAccompany();
|
||||
virtual void stop();
|
||||
|
||||
private slots:
|
||||
void setEditModeByAction(QAction* action);
|
||||
virtual void play() {}
|
||||
virtual void record() {}
|
||||
virtual void recordAccompany() {}
|
||||
virtual void stop() {}
|
||||
|
||||
signals:
|
||||
|
||||
@@ -80,9 +65,6 @@ protected:
|
||||
QAction* m_recordAction;
|
||||
QAction* m_recordAccompanyAction;
|
||||
QAction* m_stopAction;
|
||||
private:
|
||||
quint8 m_editMode;
|
||||
QActionGroup* m_editModeGroup;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user