[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src core/Song.cpp core/Song.h core/Tra...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src core/Song.cpp core/Song.h core/Tra... |
Date: |
Thu, 17 May 2007 12:45:20 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/05/17 12:45:20
Modified files:
src/core : Song.cpp Song.h Track.cpp Track.h
src/traverso/songcanvas: SongView.cpp SongView.h SongWidget.cpp
TimeLineViewPort.cpp TimeLineViewPort.h
Log message:
* Store scrollbar values via Song::get/set_state()
* Scrollbar cleanups, set scrollbar positions on songview creation from
saved values
(for some reason it doesn't scroll to the right position :( )
* Use AddRemoveClip for recorded audioclips
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.cpp?cvsroot=traverso&r1=1.100&r2=1.101
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Song.h?cvsroot=traverso&r1=1.52&r2=1.53
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Track.cpp?cvsroot=traverso&r1=1.54&r2=1.55
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Track.h?cvsroot=traverso&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongView.cpp?cvsroot=traverso&r1=1.49&r2=1.50
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongView.h?cvsroot=traverso&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/SongWidget.cpp?cvsroot=traverso&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineViewPort.cpp?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TimeLineViewPort.h?cvsroot=traverso&r1=1.4&r2=1.5
Patches:
Index: core/Song.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.cpp,v
retrieving revision 1.100
retrieving revision 1.101
diff -u -b -r1.100 -r1.101
--- core/Song.cpp 17 May 2007 07:18:48 -0000 1.100
+++ core/Song.cpp 17 May 2007 12:45:19 -0000 1.101
@@ -183,7 +183,9 @@
title = e.attribute( "title", "" );
artists = e.attribute( "artists", "" );
set_gain(e.attribute( "mastergain", "1.0").toFloat() );
- set_hzoom(e.attribute( "hzoom", "" ).toInt());
+ set_hzoom(e.attribute("hzoom", "" ).toInt());
+ m_sbx = e.attribute("sbx", "0").toInt();
+ m_sby = e.attribute("sby", "0").toInt();
set_first_visible_frame(e.attribute( "firstVisibleFrame", "0"
).toUInt());
set_work_at(e.attribute( "workingFrame", "0").toUInt());
set_transport_pos(e.attribute( "transportFrame", "0").toUInt());
@@ -222,6 +224,8 @@
properties.setAttribute("workingFrame", (uint)workingFrame);
properties.setAttribute("transportFrame", (uint)transportFrame);
properties.setAttribute("hzoom", m_hzoom);
+ properties.setAttribute("sbx", m_sbx);
+ properties.setAttribute("sby", m_sby);
properties.setAttribute("mastergain", m_gain);
songNode.appendChild(properties);
@@ -653,9 +657,9 @@
int clipcount = 0;
foreach(Track* track, m_tracks) {
if (track->armed()) {
- Command* cmd = track->init_recording();
- if (cmd) {
- group->add_command(cmd);
+ AudioClip* clip =
track->init_recording();
+ if (clip) {
+ group->add_command(new
AddRemoveClip(clip, AddRemoveClip::ADD));
clipcount++;
}
}
Index: core/Song.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Song.h,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- core/Song.h 15 May 2007 17:08:08 -0000 1.52
+++ core/Song.h 17 May 2007 12:45:19 -0000 1.53
@@ -79,6 +79,7 @@
int get_numtracks() const {return m_tracks.size();}
int get_track_index(qint64 id) const;
int get_mode() const {return m_mode;}
+ void get_scrollbar_xy(int& x, int& y) {x = m_sbx; y = m_sby;}
nframes_t get_transport_frame() const;
nframes_t get_working_frame() const {return workingFrame;}
@@ -107,6 +108,7 @@
void set_transport_pos(nframes_t pos);
void set_hzoom(int hzoom);
void set_snapping(bool snap);
+ void set_scrollbar_xy(int x, int y) {m_sbx = x; m_sby = y;}
int set_state( const QDomNode & node );
void set_recording(bool recording);
@@ -169,6 +171,8 @@
QString title;
int m_mode;
int m_hzoom;
+ int m_sbx;
+ int m_sby;
bool m_rendering;
bool changed;
bool isSnapOn;
Index: core/Track.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Track.cpp,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- core/Track.cpp 8 May 2007 10:51:55 -0000 1.54
+++ core/Track.cpp 17 May 2007 12:45:19 -0000 1.55
@@ -299,7 +299,7 @@
return isArmed;
}
-Command* Track::init_recording()
+AudioClip* Track::init_recording()
{
PENTER2;
if ( ! isArmed) {
@@ -318,7 +318,7 @@
PERROR("Could not create AudioClip to record to!");
resources_manager()->remove_clip_from_database(clip->get_id());
} else {
- return add_clip( clip );
+ return clip;
}
return 0;
Index: core/Track.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Track.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- core/Track.h 5 Apr 2007 17:53:48 -0000 1.27
+++ core/Track.h 17 May 2007 12:45:19 -0000 1.28
@@ -60,7 +60,7 @@
Command* remove_clip(AudioClip* clip, bool historable=true, bool
ismove=false);
Command* remove_plugin(Plugin* plugin);
- Command* init_recording();
+ AudioClip* init_recording();
int arm();
int disarm();
Index: traverso/songcanvas/SongView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongView.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -b -r1.49 -r1.50
--- traverso/songcanvas/SongView.cpp 17 May 2007 06:55:43 -0000 1.49
+++ traverso/songcanvas/SongView.cpp 17 May 2007 12:45:20 -0000 1.50
@@ -120,26 +120,18 @@
connect(m_song, SIGNAL(trackRemoved(Track*)), this,
SLOT(remove_trackview(Track*)));
connect(m_song, SIGNAL(lastFramePositionChanged()), this,
SLOT(update_scrollbars()));
connect(m_song, SIGNAL(modeChanged()), this, SLOT(song_mode_changed()));
- connect(m_hScrollBar, SIGNAL(valueChanged(int)),
this,SLOT(set_snap_range(int)));
- connect(m_hScrollBar, SIGNAL(sliderMoved(int)),
this,SLOT(stop_follow_play_head()));
connect(&m_shuttletimer, SIGNAL(timeout() ), this, SLOT
(update_shuttle()) );
-
+ connect(m_hScrollBar, SIGNAL(sliderMoved(int)),
this,SLOT(stop_follow_play_head()));
connect(m_hScrollBar, SIGNAL(valueChanged(int)), this,
SLOT(hscrollbar_value_changed(int)));
- connect(m_vScrollBar, SIGNAL(valueChanged(int)),
- m_clipsViewPort->verticalScrollBar(), SLOT(setValue(int)));
-
- connect(m_clipsViewPort->horizontalScrollBar(),
SIGNAL(valueChanged(int)),
- m_hScrollBar, SLOT(setValue(int)));
-
- connect(m_clipsViewPort->verticalScrollBar(), SIGNAL(valueChanged(int)),
- m_vScrollBar, SLOT(setValue(int)));
-
- m_vScrollBar->setValue(0.0);
+ connect(m_vScrollBar, SIGNAL(valueChanged(int)),
m_clipsViewPort->verticalScrollBar(), SLOT(setValue(int)));
load_theme_data();
- // FIXME Center too position on song close!!
- center();
+ int x, y;
+ m_song->get_scrollbar_xy(x, y);
+ printf("pagestep %d\n", m_hScrollBar->pageStep());
+ set_hscrollbar_value(x +
m_clipsViewPort->horizontalScrollBar()->pageStep());
+ set_vscrollbar_value(y);
}
SongView::~SongView()
@@ -211,14 +203,17 @@
void SongView::update_scrollbars()
{
+ if (!m_sceneHeight) {
+ return;
+ }
+
int width = (m_song->get_last_frame() / scalefactor) -
(m_clipsViewPort->width() / 4);
m_hScrollBar->setRange(0, width);
m_hScrollBar->setSingleStep(m_clipsViewPort->width() / 10);
m_hScrollBar->setPageStep(m_clipsViewPort->width());
- m_vScrollBar->setRange(0, (m_sceneHeight < m_clipsViewPort->height()) ?
- 0 : m_sceneHeight - m_clipsViewPort->height());
+ m_vScrollBar->setRange(0, m_sceneHeight - m_clipsViewPort->height() /
2);
m_vScrollBar->setSingleStep(m_clipsViewPort->height() / 10);
m_vScrollBar->setPageStep(m_clipsViewPort->height());
@@ -234,8 +229,8 @@
{
if (!ie().is_holding()) {
m_clipsViewPort->horizontalScrollBar()->setValue(value);
- set_snap_range(m_hScrollBar->value());
}
+ set_snap_range(m_hScrollBar->value());
}
Command* SongView::zoom()
@@ -328,7 +323,7 @@
centerX = m_song->get_working_frame();
}
- scrollbar->setValue(centerX / scalefactor - m_clipsViewPort->width() /
2);
+ set_hscrollbar_value(centerX / scalefactor - m_clipsViewPort->width() /
2);
return (Command*) 0;
}
@@ -448,11 +443,11 @@
void SongView::update_shuttle()
{
- QScrollBar* hscrollbar = m_clipsViewPort->horizontalScrollBar();
- hscrollbar->setValue(hscrollbar->value() + m_shuttleXfactor);
+ int x = m_clipsViewPort->horizontalScrollBar()->value() +
m_shuttleXfactor;
+ set_hscrollbar_value(x);
- QScrollBar* vscrollbar = m_clipsViewPort->verticalScrollBar();
- vscrollbar->setValue(vscrollbar->value() + m_shuttleYfactor);
+ int y = m_clipsViewPort->verticalScrollBar()->value() +
m_shuttleYfactor;
+ set_vscrollbar_value(y);
if (m_shuttleXfactor != 0 || m_shuttleYfactor != 0) {
ie().jog();
@@ -522,15 +517,13 @@
Command* SongView::scroll_up( )
{
- QScrollBar* scrollbar = m_clipsViewPort->verticalScrollBar();
- scrollbar->setValue(scrollbar->value() - 50);
+ set_vscrollbar_value(m_clipsViewPort->verticalScrollBar()->value() -
50);
return 0;
}
Command* SongView::scroll_down( )
{
- QScrollBar* scrollbar = m_clipsViewPort->verticalScrollBar();
- scrollbar->setValue(scrollbar->value() + 50);
+ set_vscrollbar_value(m_clipsViewPort->verticalScrollBar()->value() +
50);
return 0;
}
@@ -538,8 +531,7 @@
{
PENTER3;
stop_follow_play_head();
- QScrollBar* scrollbar = m_clipsViewPort->horizontalScrollBar();
- scrollbar->setValue(scrollbar->value() + 50);
+ set_hscrollbar_value(m_clipsViewPort->horizontalScrollBar()->value() +
50);
return (Command*) 0;
}
@@ -548,8 +540,7 @@
{
PENTER3;
stop_follow_play_head();
- QScrollBar* scrollbar = m_clipsViewPort->horizontalScrollBar();
- scrollbar->setValue(scrollbar->value() - 50);
+ set_hscrollbar_value(m_clipsViewPort->horizontalScrollBar()->value() -
50);
return (Command*) 0;
}
@@ -593,5 +584,22 @@
return (Command*) 0;
}
+void SongView::set_hscrollbar_value(int value)
+{
+ m_clipsViewPort->horizontalScrollBar()->setValue(value);
+ m_hScrollBar->setValue(value);
+ m_song->set_scrollbar_xy(m_hScrollBar->value(), m_vScrollBar->value());
+}
+
+void SongView::set_vscrollbar_value(int value)
+{
+ if (value > m_vScrollBar->maximum()) {
+ value = m_vScrollBar->maximum();
+ }
+ m_clipsViewPort->verticalScrollBar()->setValue(value);
+ m_vScrollBar->setValue(value);
+ m_song->set_scrollbar_xy(m_hScrollBar->value(), m_vScrollBar->value());
+}
+
//eof
Index: traverso/songcanvas/SongView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongView.h,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- traverso/songcanvas/SongView.h 17 May 2007 06:55:43 -0000 1.24
+++ traverso/songcanvas/SongView.h 17 May 2007 12:45:20 -0000 1.25
@@ -109,6 +109,8 @@
int m_trackTopIndent;
void layout_tracks();
+ void set_hscrollbar_value(int value);
+ void set_vscrollbar_value(int value);
public slots:
Index: traverso/songcanvas/SongWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/SongWidget.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- traverso/songcanvas/SongWidget.cpp 7 May 2007 18:37:14 -0000 1.17
+++ traverso/songcanvas/SongWidget.cpp 17 May 2007 12:45:20 -0000 1.18
@@ -223,7 +223,7 @@
m_trackPanel = new TrackPanelViewPort(m_scene, this);
m_clipsViewPort = new ClipsViewPort(m_scene, this);
- m_timeLine = new TimeLineViewPort(m_scene, this, m_clipsViewPort);
+ m_timeLine = new TimeLineViewPort(m_scene, this);
m_songPanelVP = new SongPanelViewPort(m_scene, this);
m_mainLayout = new QGridLayout(this);
Index: traverso/songcanvas/TimeLineViewPort.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/songcanvas/TimeLineViewPort.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- traverso/songcanvas/TimeLineViewPort.cpp 7 May 2007 10:31:22 -0000
1.6
+++ traverso/songcanvas/TimeLineViewPort.cpp 17 May 2007 12:45:20 -0000
1.7
@@ -20,7 +20,7 @@
*/
#include "TimeLineViewPort.h"
-#include "ClipsViewPort.h"
+#include "SongView.h"
#include "SongWidget.h"
#include "TimeLineView.h"
#include <QScrollBar>
@@ -29,11 +29,9 @@
#include <Debugger.h>
-TimeLineViewPort::TimeLineViewPort(QGraphicsScene* scene, SongWidget* sw,
ClipsViewPort* view)
+TimeLineViewPort::TimeLineViewPort(QGraphicsScene* scene, SongWidget* sw)
: ViewPort(scene, sw)
{
- clipView = view;
-
setMaximumHeight(TIMELINE_HEIGHT);
setMinimumHeight(TIMELINE_HEIGHT);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@@ -43,10 +41,11 @@
void TimeLineViewPort::wheelEvent ( QWheelEvent * e )
{
- if (e->delta() > 0)
-
clipView->horizontalScrollBar()->setValue(clipView->horizontalScrollBar()->value()
- clipView->horizontalScrollBar()->pageStep() / 6);
- else
-
clipView->horizontalScrollBar()->setValue(clipView->horizontalScrollBar()->value()
+ clipView->horizontalScrollBar()->pageStep() / 6);
+ if (e->delta() > 0) {
+ m_sv->scroll_left();
+ } else {
+ m_sv->scroll_right();
+ }
}
void TimeLineViewPort::set_songview( SongView * view )
@@ -54,6 +53,7 @@
m_timeLineView = new TimeLineView(view);
scene()->addItem(m_timeLineView);
m_timeLineView->setPos(0, -TIMELINE_HEIGHT);
+ m_sv = view;
}
void TimeLineViewPort::get_pointed_context_items(QList<ContextItem* > &list)
Index: traverso/songcanvas/TimeLineViewPort.h
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/songcanvas/TimeLineViewPort.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- traverso/songcanvas/TimeLineViewPort.h 7 May 2007 10:31:22 -0000
1.4
+++ traverso/songcanvas/TimeLineViewPort.h 17 May 2007 12:45:20 -0000
1.5
@@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- $Id: TimeLineViewPort.h,v 1.4 2007/05/07 10:31:22 r_sijrier Exp $
+ $Id: TimeLineViewPort.h,v 1.5 2007/05/17 12:45:20 r_sijrier Exp $
*/
#ifndef TIME_LINE_VIEW_PORT_H
@@ -28,14 +28,13 @@
class SongWidget;
class SongView;
class TimeLineView;
-class ClipsViewPort;
#define TIMELINE_HEIGHT 32
class TimeLineViewPort : public ViewPort
{
public:
- TimeLineViewPort(QGraphicsScene* scene, SongWidget* sw, ClipsViewPort*
clipView);
+ TimeLineViewPort(QGraphicsScene* scene, SongWidget* sw);
~TimeLineViewPort() {};
void set_songview(SongView* view);
@@ -48,7 +47,7 @@
void wheelEvent ( QWheelEvent * e );
private:
- ClipsViewPort* clipView;
+ SongView* m_sv;
TimeLineView* m_timeLineView;
};
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src core/Song.cpp core/Song.h core/Tra...,
Remon Sijrier <=