mirror of
https://github.com/LMMS/lmms.git
synced 2026-01-23 13:58:17 -05:00
The piano roll's actions have been grouped into several toolbars. There are now five groups / tool bars: "Transport controls", "Note controls", "Copy paste controls", "Timeline controls" and "Zoom and note controls" (this group is a bit mixed). Each group can be turned off and on using the standard toolbar context menu provided by Qt. The new default layout of the toolbars saves horizontal space by putting the "Zoom and note controls" below the other toolbars. The toolbars can be hidden and shown via the context menu but these states are not stored. The "Song editor", "Beat+Bassline editor" and "Automation editor" have been switched to using movable toolbars as well. Adjusted the Editor class to have some other defaults for the "Transport controls". Added some methods to add toolbars to editors and changed the other editors' code to use it. This way the properties of a standard editor toolbar can be changed in a simple and central way. Fixed the size of the timeline control buttons which are implemented as NStateButton. Previously these had a fixed size and appeared smaller than all other buttons. Now they behave like other ToolButton with respect to the size. Also removed a fixed size call in ToolButton itself. Made some adjustments to the CSS for QToolBar and QToolButton: * Switched the QToolBar CSS to a vertical gradient and also increased the padding to 2px on the way. * Previously all buttons looked like they were pressed. This was fixed by using the same linear gradient that is used for the QToolBar. * The hover effect for QToolButtons is a bit more subtle now and looks less intensive as when the button is pressed / checked. * Gave the normal buttons a bit more radius. * Adjusted the radii of the special play and stop buttons to be symmetric so the do not look skewed.
100 lines
2.5 KiB
C++
100 lines
2.5 KiB
C++
/*
|
|
* 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 EDITOR_COMMON_H
|
|
#define EDITOR_COMMON_H
|
|
|
|
#include <QAction>
|
|
#include <QMainWindow>
|
|
#include <QToolBar>
|
|
|
|
#include "TimeLineWidget.h"
|
|
#include "ToolButton.h"
|
|
|
|
class DropToolBar;
|
|
|
|
/// \brief Superclass for editors with a toolbar.
|
|
///
|
|
/// Those editors include the Song Editor, the Automation Editor, B&B Editor,
|
|
/// and the Piano Roll.
|
|
class Editor : public QMainWindow
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
void setPauseIcon(bool displayPauseIcon=true);
|
|
|
|
protected:
|
|
DropToolBar * addDropToolBarToTop(QString const & windowTitle);
|
|
DropToolBar * addDropToolBar(Qt::ToolBarArea whereToAdd, QString const & windowTitle);
|
|
DropToolBar * addDropToolBar(QWidget * parent, Qt::ToolBarArea whereToAdd, QString const & windowTitle);
|
|
|
|
protected slots:
|
|
virtual void play() {}
|
|
virtual void record() {}
|
|
virtual void recordAccompany() {}
|
|
virtual void stop() {}
|
|
|
|
private slots:
|
|
/// Called by pressing the space key. Plays or stops.
|
|
void togglePlayStop();
|
|
|
|
signals:
|
|
|
|
protected:
|
|
/// \brief Constructor.
|
|
///
|
|
/// \param record If set true, the editor's toolbar will contain record
|
|
/// buttons in addition to the play and stop buttons.
|
|
Editor(bool record = false);
|
|
virtual ~Editor();
|
|
|
|
|
|
DropToolBar* m_toolBar;
|
|
|
|
QAction* m_playAction;
|
|
QAction* m_recordAction;
|
|
QAction* m_recordAccompanyAction;
|
|
QAction* m_stopAction;
|
|
};
|
|
|
|
|
|
/// Small helper class: A QToolBar that accepts and exposes drop events as signals
|
|
class DropToolBar : public QToolBar
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
DropToolBar(QWidget* parent=0);
|
|
|
|
signals:
|
|
void dragEntered(QDragEnterEvent* event);
|
|
void dropped(QDropEvent* event);
|
|
|
|
protected:
|
|
void dragEnterEvent(QDragEnterEvent* event);
|
|
void dropEvent(QDropEvent* event);
|
|
};
|
|
|
|
|
|
#endif
|