[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src core/Song.cpp traverso/songcanvas/...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src core/Song.cpp traverso/songcanvas/... |
Date: |
Thu, 24 May 2007 13:11:40 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/05/24 13:11:39
Modified files:
src/core : Song.cpp
src/traverso/songcanvas: CurveView.cpp PluginChainView.cpp
PluginChainView.h PluginView.cpp
PluginView.h SongView.cpp TrackView.cpp
src/traverso/widgets: InfoWidgets.cpp InfoWidgets.h
Log message:
* Only show plugins in effects mode
* switch combobox to toolbutton to toggle edit/effects view
* store edit/effects mode in project file, and reset at startup
* scale plugin views if the track height becomes small
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.cpp?cvsroot=traverso&r1=1.105&r2=1.106
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/CurveView.cpp?cvsroot=traverso&r1=1.48&r2=1.49
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/PluginChainView.cpp?cvsroot=traverso&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/PluginChainView.h?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/PluginView.cpp?cvsroot=traverso&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/PluginView.h?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongView.cpp?cvsroot=traverso&r1=1.59&r2=1.60
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TrackView.cpp?cvsroot=traverso&r1=1.33&r2=1.34
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.cpp?cvsroot=traverso&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/InfoWidgets.h?cvsroot=traverso&r1=1.14&r2=1.15
Patches:
Index: core/Song.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.cpp,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -b -r1.105 -r1.106
--- core/Song.cpp 24 May 2007 11:02:07 -0000 1.105
+++ core/Song.cpp 24 May 2007 13:11:37 -0000 1.106
@@ -193,6 +193,7 @@
set_work_at(e.attribute( "workingFrame", "0").toUInt());
set_transport_pos(e.attribute( "transportFrame", "0").toUInt());
set_snapping(e.attribute("snapping", "0").toInt());
+ m_mode = e.attribute("mode", "0").toInt();
m_timeline->set_state(node.firstChildElement("TimeLine"));
@@ -232,6 +233,7 @@
properties.setAttribute("sby", m_sby);
properties.setAttribute("mastergain", m_gain);
properties.setAttribute("snapping", m_isSnapOn);
+ properties.setAttribute("mode", m_mode);
songNode.appendChild(properties);
doc.appendChild(songNode);
Index: traverso/songcanvas/CurveView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/CurveView.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -b -r1.48 -r1.49
--- traverso/songcanvas/CurveView.cpp 7 May 2007 21:29:07 -0000 1.48
+++ traverso/songcanvas/CurveView.cpp 24 May 2007 13:11:38 -0000 1.49
@@ -202,7 +202,6 @@
setAcceptsHoverEvents(true);
set_view_mode();
-
}
CurveView::~ CurveView( )
@@ -565,6 +564,7 @@
{
if (m_sv->get_song()->get_mode() == Song::EFFECTS) {
show();
+ printf("....\n");
} else {
hide();
}
Index: traverso/songcanvas/PluginChainView.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/songcanvas/PluginChainView.cpp,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- traverso/songcanvas/PluginChainView.cpp 24 May 2007 10:56:44 -0000
1.13
+++ traverso/songcanvas/PluginChainView.cpp 24 May 2007 13:11:38 -0000
1.14
@@ -32,6 +32,7 @@
#include <Plugin.h>
#include <Track.h>
+#include "Song.h"
#if defined (LV2_SUPPORT)
#include <LV2Plugin.h>
@@ -46,18 +47,16 @@
PluginChainView::PluginChainView(SongView* sv, ViewItem* parent, PluginChain*
chain)
: ViewItem(parent, parent)
, m_pluginchain(chain)
- , m_sv(sv)
{
PENTERCONS;
setZValue(parent->zValue() + 2);
+ m_sv = sv;
+ calculate_bounding_rect();
#if QT_VERSION < 0x040300
parent->scene()->addItem(this);
#endif
- m_boundingRect = QRectF(0, 0, 0, 44);
-
- hide();
foreach(Plugin* plugin, chain->get_plugin_list()) {
add_new_pluginview(plugin);
@@ -67,7 +66,9 @@
connect(chain, SIGNAL(pluginRemoved(Plugin*)), this,
SLOT(remove_pluginview(Plugin*)));
connect(m_sv->get_clips_viewport()->horizontalScrollBar(),
SIGNAL(valueChanged(int)),
this, SLOT(scrollbar_value_changed(int)));
+ connect(m_sv->get_song(), SIGNAL(modeChanged()), this,
SLOT(set_view_mode()));
+ set_view_mode();
}
PluginChainView::~PluginChainView( )
@@ -90,7 +91,6 @@
view->setPos(x, m_boundingRect.height() -
view->boundingRect().height());
m_pluginViews.append(view);
- show();
}
void PluginChainView::remove_pluginview( Plugin * plugin )
@@ -130,5 +130,22 @@
setPos(value, y());
}
+void PluginChainView::set_view_mode()
+{
+ if (m_sv->get_song()->get_mode() == Song::EFFECTS) {
+ show();
+ } else {
+ hide();
+ }
+}
+
+void PluginChainView::calculate_bounding_rect()
+{
+ int y = m_parentViewItem->boundingRect().height();
+ m_boundingRect = QRectF(0, 0, 0, y);
+ setPos(pos().x(), - 2);
+ ViewItem::calculate_bounding_rect();
+}
+
//eof
Index: traverso/songcanvas/PluginChainView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/PluginChainView.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- traverso/songcanvas/PluginChainView.h 25 Apr 2007 17:50:47 -0000
1.6
+++ traverso/songcanvas/PluginChainView.h 24 May 2007 13:11:38 -0000
1.7
@@ -40,16 +40,20 @@
~PluginChainView();
void paint(QPainter* painter, const QStyleOptionGraphicsItem *option,
QWidget *widget);
+ void calculate_bounding_rect();
private:
PluginChain* m_pluginchain;
- SongView* m_sv;
QList<PluginView* > m_pluginViews;
public slots:
void add_new_pluginview(Plugin* plugin);
void remove_pluginview(Plugin* plugin);
void scrollbar_value_changed(int value);
+
+private slots:
+ void set_view_mode();
+
};
#endif
Index: traverso/songcanvas/PluginView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/PluginView.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- traverso/songcanvas/PluginView.cpp 7 May 2007 18:14:38 -0000 1.16
+++ traverso/songcanvas/PluginView.cpp 24 May 2007 13:11:38 -0000 1.17
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2005-2006 Remon Sijrier
+Copyright (C) 2005-2007 Remon Sijrier
This file is part of Traverso
@@ -57,9 +57,9 @@
m_name = plugin->get_name();
QFontMetrics fm(themer()->get_font("Plugin:fontscale:name"));
- int fontwidth = fm.width(m_name);
+ m_textwidth = fm.width(m_name);
- m_boundingRect = QRectF(0, 0, fontwidth + 8, 25);
+ calculate_bounding_rect();
setAcceptsHoverEvents(true);
setCursor(themer()->get_cursor("Plugin"));
@@ -91,11 +91,11 @@
int height, width;
if (option->state & QStyle::State_MouseOver) {
- height = 21;
+ height = m_boundingRect.height() + 1;
width = m_boundingRect.width() + 1;
color = color.light(120);
} else {
- height = 20;
+ height = m_boundingRect.height();
width = m_boundingRect.width();
}
@@ -140,4 +140,17 @@
update();
}
+void PluginView::calculate_bounding_rect()
+{
+ int height = 25;
+ int parentheight = m_parentViewItem->boundingRect().height();
+ if (parentheight < 30) {
+ height = parentheight - 4;
+ }
+ int y = parentheight - height;
+ m_boundingRect = QRectF(0, 0, m_textwidth + 8, height);
+ setPos(x(), y);
+}
+
//eof
+
Index: traverso/songcanvas/PluginView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/PluginView.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- traverso/songcanvas/PluginView.h 24 May 2007 10:56:44 -0000 1.9
+++ traverso/songcanvas/PluginView.h 24 May 2007 13:11:38 -0000 1.10
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2006 Remon Sijrier
+ Copyright (C) 2006-2007 Remon Sijrier
This file is part of Traverso
@@ -17,7 +17,6 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- $Id: PluginView.h,v 1.9 2007/05/24 10:56:44 r_sijrier Exp $
*/
#ifndef PLUGIN_VIEW_H
@@ -46,19 +45,18 @@
PluginView(PluginChainView* pcv, PluginChain* chain, Plugin* plugin,
int index);
~PluginView();
- enum {Type = UserType + 5};
-
Plugin* get_plugin();
void set_index(int index);
void paint(QPainter* painter, const QStyleOptionGraphicsItem *option,
QWidget *widget);
- int type() const;
+ void calculate_bounding_rect();
private:
PluginChain* m_pluginchain;
Plugin* m_plugin;
int m_index;
+ int m_textwidth;
QString m_name;
#if defined (LV2_SUPPORT)
@@ -73,8 +71,6 @@
void repaint();
};
-inline int PluginView::type() const {return Type;}
-
#endif
//eof
Index: traverso/songcanvas/SongView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongView.cpp,v
retrieving revision 1.59
retrieving revision 1.60
diff -u -b -r1.59 -r1.60
--- traverso/songcanvas/SongView.cpp 23 May 2007 12:53:54 -0000 1.59
+++ traverso/songcanvas/SongView.cpp 24 May 2007 13:11:38 -0000 1.60
@@ -85,8 +85,6 @@
m_hScrollBar = songwidget->m_hScrollBar;
m_actOnPlayHead = true;
- m_song->set_editing_mode();
-
m_clipsViewPort->scene()->addItem(this);
m_playCursor = new PlayHead(this, m_song, m_clipsViewPort);
Index: traverso/songcanvas/TrackView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TrackView.cpp,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -b -r1.33 -r1.34
--- traverso/songcanvas/TrackView.cpp 11 May 2007 13:09:23 -0000 1.33
+++ traverso/songcanvas/TrackView.cpp 24 May 2007 13:11:38 -0000 1.34
@@ -168,6 +168,9 @@
if (PluginSelectorDialog::instance()->exec() == QDialog::Accepted) {
Plugin* plugin =
PluginSelectorDialog::instance()->get_selected_plugin();
if (plugin) {
+ // Force showing into effects mode, just in case the
user adds
+ // a plugin in edit mode, which means it won't show up!
+ m_sv->get_song()->set_effects_mode();
return m_track->add_plugin(plugin);
}
}
Index: traverso/widgets/InfoWidgets.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- traverso/widgets/InfoWidgets.cpp 24 May 2007 11:53:25 -0000 1.31
+++ traverso/widgets/InfoWidgets.cpp 24 May 2007 13:11:39 -0000 1.32
@@ -531,26 +531,23 @@
m_snapAct->setCheckable(true);
m_snapAct->setToolTip(tr("Snap items to edges of other items while
dragging."));
m_snap->setDefaultAction(m_snapAct);
- m_snap->setFocusPolicy(Qt::NoFocus);
m_follow = new QToolButton(this);
m_followAct = new QAction(tr("S&croll Playback"), this);
m_followAct->setCheckable(true);
m_followAct->setToolTip(tr("Keep play cursor in view while playing or
recording."));
m_follow->setDefaultAction(m_followAct);
- m_follow->setFocusPolicy(Qt::NoFocus);
- m_mode = new QComboBox(this);
- m_mode->addItem("Mode: Edit");
- m_mode->addItem("Mode: Effects");
- m_mode->setFocusPolicy(Qt::NoFocus);
+ m_effectButton = new QToolButton(this);
+ m_effectButton->setMinimumWidth(110);
+ m_effectAction = new QAction(tr("&Show Effects"), this);
+ m_effectAction->setCheckable(false);
m_record = new QToolButton(this);
m_recAction = new QAction(tr("Record"), this);
m_recAction->setCheckable(true);
m_recAction->setToolTip(tr("Toggle recording state on/off"));
m_record->setDefaultAction(m_recAction);
- m_record->setFocusPolicy(Qt::NoFocus);
m_record->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
@@ -559,7 +556,6 @@
action->setIcon(QIcon(find_pixmap(":/undo-16")));
action->setShortcuts(QKeySequence::Undo);
undobutton->setDefaultAction(action);
- undobutton->setFocusPolicy(Qt::NoFocus);
undobutton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
undobutton->setText(tr("Undo"));
connect(action, SIGNAL(triggered( bool )), &pm(), SLOT(undo()));
@@ -585,7 +581,7 @@
lay->addStretch(1);
lay->addWidget(m_playhead);
lay->addStretch(5);
- lay->addWidget(m_mode);
+ lay->addWidget(m_effectButton);
lay->addWidget(m_songselectbox);
setLayout(lay);
@@ -597,7 +593,7 @@
connect(m_snapAct, SIGNAL(triggered(bool)), this,
SLOT(snap_state_changed(bool)));
connect(m_followAct, SIGNAL(triggered(bool)), this,
SLOT(follow_state_changed(bool)));
connect(&config(), SIGNAL(configChanged()), this,
SLOT(update_follow_state()));
- connect(m_mode, SIGNAL(currentIndexChanged(int)), this,
SLOT(mode_index_changed(int)));
+ connect(m_effectButton, SIGNAL(clicked()), this,
SLOT(effect_button_clicked()));
connect(m_recAction, SIGNAL(triggered(bool)), this,
SLOT(recording_button_state_changed(bool)));
update_follow_state();
@@ -627,18 +623,18 @@
if (m_song) {
connect(m_song, SIGNAL(snapChanged()), this,
SLOT(update_snap_state()));
- connect(m_song, SIGNAL(modeChanged()), this,
SLOT(update_mode_state()));
+ connect(m_song, SIGNAL(modeChanged()), this,
SLOT(update_effects_state()));
connect(m_song, SIGNAL(recordingStateChanged()), this,
SLOT(update_recording_state()));
update_snap_state();
- update_mode_state();
+ update_effects_state();
update_recording_state();
m_snapAct->setEnabled(true);
- m_mode->setEnabled(true);
+ m_effectButton->setEnabled(true);
m_record->setEnabled(true);
m_follow->setEnabled(true);
} else {
m_snapAct->setEnabled(false);
- m_mode->setEnabled(false);
+ m_effectButton->setEnabled(false);
m_record->setEnabled(false);
m_follow->setEnabled(false);
}
@@ -649,12 +645,12 @@
m_snapAct->setChecked(m_song->is_snap_on());
}
-void SongInfo::update_mode_state()
+void SongInfo::update_effects_state()
{
if (m_song->get_mode() == Song::EDIT) {
- m_mode->setCurrentIndex(0);
+ m_effectButton->setText(tr("Show Effects"));
} else {
- m_mode->setCurrentIndex(1);
+ m_effectButton->setText(tr("Hide Effects"));
}
}
@@ -677,12 +673,12 @@
config().save();
}
-void SongInfo::mode_index_changed(int index)
+void SongInfo::effect_button_clicked()
{
- if (index == 0) {
- m_song->set_editing_mode();
- } else {
+ if (m_song->get_mode() == Song::EDIT) {
m_song->set_effects_mode();
+ } else {
+ m_song->set_editing_mode();
}
}
Index: traverso/widgets/InfoWidgets.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/InfoWidgets.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- traverso/widgets/InfoWidgets.h 17 May 2007 16:35:02 -0000 1.14
+++ traverso/widgets/InfoWidgets.h 24 May 2007 13:11:39 -0000 1.15
@@ -189,9 +189,9 @@
void update_snap_state();
void snap_state_changed(bool state);
void update_follow_state();
- void update_mode_state();
+ void update_effects_state();
void follow_state_changed(bool state);
- void mode_index_changed(int index);
+ void effect_button_clicked();
void recording_button_state_changed(bool state);
void update_recording_state();
void song_selector_song_added(Song* song);
@@ -203,12 +203,13 @@
private:
PlayHeadInfo* m_playhead;
QToolButton* m_snap;
- QComboBox* m_mode;
+ QToolButton* m_effectButton;
QComboBox* m_songselectbox;
QAction* m_snapAct;
QToolButton* m_follow;
QAction* m_followAct;
QAction* m_recAction;
+ QAction* m_effectAction;
QToolButton* m_record;
};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src core/Song.cpp traverso/songcanvas/...,
Remon Sijrier <=