[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src core/Project.cpp core/Project.h co...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src core/Project.cpp core/Project.h co... |
Date: |
Wed, 24 Oct 2007 18:11:41 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/10/24 18:11:41
Modified files:
src/core : Project.cpp Project.h ProjectManager.cpp
src/traverso : SpectralMeterWidget.cpp
src/traverso/widgets: ResourcesWidget.cpp ResourcesWidget.h
Log message:
* Only create GUI elements on first showEvent().
This reduces cpu (and probably memory consumption) when these widgets
aren't showed initially after application startup
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Project.cpp?cvsroot=traverso&r1=1.60&r2=1.61
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Project.h?cvsroot=traverso&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ProjectManager.cpp?cvsroot=traverso&r1=1.45&r2=1.46
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/SpectralMeterWidget.cpp?cvsroot=traverso&r1=1.43&r2=1.44
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/ResourcesWidget.cpp?cvsroot=traverso&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/ResourcesWidget.h?cvsroot=traverso&r1=1.9&r2=1.10
Patches:
Index: core/Project.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Project.cpp,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -b -r1.60 -r1.61
--- core/Project.cpp 12 Oct 2007 10:06:30 -0000 1.60
+++ core/Project.cpp 24 Oct 2007 18:11:40 -0000 1.61
@@ -247,6 +247,8 @@
info().information( tr("Project %1 loaded").arg(m_title) );
+ emit projectLoadFinished();
+
return 1;
}
Index: core/Project.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Project.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- core/Project.h 10 Oct 2007 16:41:57 -0000 1.27
+++ core/Project.h 24 Oct 2007 18:11:40 -0000 1.28
@@ -158,6 +158,7 @@
void overallExportProgressChanged(int );
void exportFinished();
void exportStartedForSong(Song* );
+ void projectLoadFinished();
};
#endif
Index: core/ProjectManager.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ProjectManager.cpp,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -b -r1.45 -r1.46
Index: traverso/SpectralMeterWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/SpectralMeterWidget.cpp,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- traverso/SpectralMeterWidget.cpp 8 Jul 2007 20:51:29 -0000 1.43
+++ traverso/SpectralMeterWidget.cpp 24 Oct 2007 18:11:40 -0000 1.44
@@ -54,18 +54,7 @@
: ViewPort(parent)
{
PENTERCONS;
- setMinimumWidth(40);
- setMinimumHeight(10);
-
- m_item = new SpectralMeterView(this);
-
- QGraphicsScene* scene = new QGraphicsScene(this);
- setScene(scene);
- scene->addItem(m_item);
- m_item->setPos(0,0);
-
- setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ m_item = 0;
}
SpectralMeterWidget::~SpectralMeterWidget()
@@ -74,18 +63,44 @@
void SpectralMeterWidget::resizeEvent( QResizeEvent * )
{
+ if (m_item) {
m_item->resize();
+ }
}
void SpectralMeterWidget::hideEvent(QHideEvent * event)
{
QWidget::hideEvent(event);
+ if (m_item) {
m_item->hide_event();
+ }
}
void SpectralMeterWidget::showEvent(QShowEvent * event)
{
+ if (!m_item) {
+ setMinimumWidth(40);
+ setMinimumHeight(10);
+
+ m_item = new SpectralMeterView(this);
+
+ QGraphicsScene* scene = new QGraphicsScene(this);
+ setScene(scene);
+ scene->addItem(m_item);
+ m_item->setPos(0,0);
+ m_item->resize();
+
+ Project* project = pm().get_project();
+ m_item->set_project(project);
+ if (project) {
+ m_item->set_song(project->get_current_song());
+ }
+
+ setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ }
+
QWidget::showEvent(event);
m_item->show_event();
}
Index: traverso/widgets/ResourcesWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/ResourcesWidget.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- traverso/widgets/ResourcesWidget.cpp 23 Oct 2007 19:53:43 -0000
1.31
+++ traverso/widgets/ResourcesWidget.cpp 24 Oct 2007 18:11:41 -0000
1.32
@@ -44,9 +44,16 @@
Q_OBJECT
public:
- FileWidget(QWidget* parent=0)
- : QWidget(parent)
- {
+ FileWidget(QWidget* parent=0) : QWidget(parent) {
+ m_dirModel = 0;
+ }
+
+ void showEvent ( QShowEvent * event ) {
+
+ if (m_dirModel) {
+ return;
+ }
+
QPalette palette;
palette.setColor(QPalette::AlternateBase,
themer()->get_color("ResourcesBin:alternaterowcolor"));
@@ -101,7 +108,6 @@
connect(upButton, SIGNAL(clicked()), this,
SLOT(dir_up_button_clicked()));
connect(refreshButton, SIGNAL(clicked()), this,
SLOT(refresh_button_clicked()));
connect(m_box, SIGNAL(activated(int)), this,
SLOT(box_actived(int)));
-
}
void set_current_path(const QString& path) const;
@@ -179,6 +185,19 @@
ResourcesWidget::ResourcesWidget(QWidget * parent)
: QWidget(parent)
{
+ sourcesTreeWidget = 0;
+}
+
+ResourcesWidget::~ ResourcesWidget()
+{
+}
+
+void ResourcesWidget::showEvent( QShowEvent * event )
+{
+ if (sourcesTreeWidget) {
+ return;
+ }
+
setupUi(this);
QPalette palette;
@@ -208,10 +227,11 @@
connect(songComboBox, SIGNAL(currentIndexChanged(int)), this,
SLOT(song_combo_box_index_changed(int)));
connect(songComboBox, SIGNAL(activated(int)), this,
SLOT(song_combo_box_index_changed(int)));
connect(&pm(), SIGNAL(projectLoaded(Project*)), this,
SLOT(set_project(Project*)));
-}
-ResourcesWidget::~ ResourcesWidget()
-{
+ set_project(pm().get_project());
+
+ // Fade a project load finished since we were not able to catch that
signal!
+ project_load_finished();
}
void ResourcesWidget::set_project(Project * project)
@@ -230,25 +250,28 @@
}
songComboBox->setEnabled(true);
+
+ connect(m_project, SIGNAL(projectLoadFinished()), this,
SLOT(project_load_finished()));
+}
+
+void ResourcesWidget::project_load_finished()
+{
+ if (!m_project) {
+ return;
+ }
+
m_currentSong = m_project->get_current_song();
ResourcesManager* rsmanager = m_project->get_audiosource_manager();
- connect(rsmanager, SIGNAL(stateRestored()), this,
SLOT(populate_tree()));
- connect(rsmanager, SIGNAL(clipAdded(AudioClip*)), this,
SLOT(add_clip(AudioClip*)));
- connect(rsmanager, SIGNAL(clipRemoved(AudioClip*)), this,
SLOT(remove_clip(AudioClip*)));
- connect(rsmanager, SIGNAL(sourceAdded(ReadSource*)), this,
SLOT(add_source(ReadSource*)));
- connect(rsmanager, SIGNAL(sourceRemoved(ReadSource*)), this,
SLOT(remove_source(ReadSource*)));
connect(m_project, SIGNAL(songAdded(Song*)), this,
SLOT(song_added(Song*)));
connect(m_project, SIGNAL(songRemoved(Song*)), this,
SLOT(song_removed(Song*)));
connect(m_project, SIGNAL(currentSongChanged(Song*)), this,
SLOT(set_current_song(Song*)));
-}
-void ResourcesWidget::populate_tree()
-{
- if (!m_project) {
- return;
- }
+ connect(rsmanager, SIGNAL(clipAdded(AudioClip*)), this,
SLOT(add_clip(AudioClip*)));
+ connect(rsmanager, SIGNAL(clipRemoved(AudioClip*)), this,
SLOT(remove_clip(AudioClip*)));
+ connect(rsmanager, SIGNAL(sourceAdded(ReadSource*)), this,
SLOT(add_source(ReadSource*)));
+ connect(rsmanager, SIGNAL(sourceRemoved(ReadSource*)), this,
SLOT(remove_source(ReadSource*)));
foreach(ReadSource* rs, resources_manager()->get_all_audio_sources()) {
add_source(rs);
Index: traverso/widgets/ResourcesWidget.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/ResourcesWidget.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- traverso/widgets/ResourcesWidget.h 5 Jun 2007 12:47:09 -0000 1.9
+++ traverso/widgets/ResourcesWidget.h 24 Oct 2007 18:11:41 -0000 1.10
@@ -32,6 +32,7 @@
class AudioClip;
class ReadSource;
class SourceTreeItem;
+class QShowEvent;
class ClipTreeItem : public QObject, public QTreeWidgetItem
{
@@ -74,6 +75,9 @@
ResourcesWidget(QWidget* parent=0);
~ResourcesWidget();
+protected:
+ void showEvent( QShowEvent * event );
+
private:
Project* m_project;
Song* m_currentSong;
@@ -88,7 +92,7 @@
private slots:
void set_project(Project* project);
- void populate_tree();
+ void project_load_finished();
void view_combo_box_index_changed(int index);
void song_combo_box_index_changed(int index);