[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/traverso dialogs/project/ProjectMa...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src/traverso dialogs/project/ProjectMa... |
Date: |
Tue, 03 Apr 2007 19:05:39 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/04/03 19:05:39
Modified files:
src/traverso/dialogs/project: ProjectManagerDialog.cpp
ProjectManagerDialog.h
src/traverso : Interface.cpp Interface.h traverso.pro
src/traverso/ui: ProjectManagerDialog.ui SongManagerDialog.ui
Added files:
src/traverso/dialogs/project: NewSongDialog.cpp NewSongDialog.h
OpenCreateProjectDialog.cpp
OpenCreateProjectDialog.h
src/traverso/ui: OpenCreateProjectDialog.ui
Removed files:
src/traverso/dialogs/project: SongManagerDialog.cpp
SongManagerDialog.h
Log message:
renamed ProjectManagerDialog -> OpenCreateProjectDialog
renamed SongManagerDialog -> ProjectManagerDialog
explicit un/redo buttons in ProjectManagerDialog, since a Project
doesnt have a history view.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/ProjectManagerDialog.cpp?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/ProjectManagerDialog.h?cvsroot=traverso&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/NewSongDialog.cpp?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/NewSongDialog.h?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/OpenCreateProjectDialog.cpp?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/OpenCreateProjectDialog.h?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/SongManagerDialog.cpp?cvsroot=traverso&r1=1.11&r2=0
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/SongManagerDialog.h?cvsroot=traverso&r1=1.6&r2=0
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.cpp?cvsroot=traverso&r1=1.52&r2=1.53
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.h?cvsroot=traverso&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/traverso.pro?cvsroot=traverso&r1=1.37&r2=1.38
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/ProjectManagerDialog.ui?cvsroot=traverso&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/SongManagerDialog.ui?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/OpenCreateProjectDialog.ui?cvsroot=traverso&rev=1.1
Patches:
Index: dialogs/project/ProjectManagerDialog.cpp
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/dialogs/project/ProjectManagerDialog.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- dialogs/project/ProjectManagerDialog.cpp 21 Mar 2007 19:17:16 -0000
1.6
+++ dialogs/project/ProjectManagerDialog.cpp 3 Apr 2007 19:05:38 -0000
1.7
@@ -1,41 +1,33 @@
/*
- Copyright (C) 2005-2006 Remon Sijrier
+Copyright (C) 2005-2007 Remon Sijrier
- This file is part of Traverso
+This file is part of Traverso
- Traverso 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; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+Traverso 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; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "ProjectManagerDialog.h"
-#include "ui_ProjectManagerDialog.h"
-#include <QDir>
+#include "libtraversocore.h"
#include <QStringList>
#include <QMessageBox>
-#include <QTextStream>
-#include <QDomDocument>
#include <QFileDialog>
#include <QHeaderView>
-
-#include <Config.h>
-#include <Information.h>
-#include <ProjectManager.h>
-#include <Project.h>
-#include <Utils.h>
-
+#include <dialogs/project/NewSongDialog.h>
+#include <Interface.h>
// Always put me below _all_ includes, this is needed
// in case we run with memory leak detection enabled!
@@ -45,244 +37,208 @@
: QDialog(parent)
{
setupUi(this);
- projectListView->setColumnCount(2);
- update_projects_list();
- QStringList stringList;
- stringList << "Project Name" << "Songs";
- projectListView->setHeaderLabels(stringList);
- projectListView->header()->resizeSection(0, 160);
- projectListView->header()->resizeSection(1, 30);
+ treeSongWidget->setColumnCount(3);
+ treeSongWidget->header()->resizeSection(0, 160);
+ treeSongWidget->header()->resizeSection(1, 55);
+ treeSongWidget->header()->resizeSection(2, 70);
+ QStringList stringList;
+ stringList << "Song Name" << "Tracks" << "Length";
+ treeSongWidget->setHeaderLabels(stringList);
- trackCountSpinBox->setValue(config().get_property("Song",
"trackCreationCount", 4).toInt());
+ set_project(pm().get_project());
+ undoButton->setIcon(QIcon(find_pixmap(":/undo-16")));
+ redoButton->setIcon(QIcon(find_pixmap(":/redo-16")));
- connect(projectListView, SIGNAL(itemClicked(QTreeWidgetItem*,int)),
this, SLOT(projectitem_clicked(QTreeWidgetItem*,int)));
+ connect(treeSongWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)),
this, SLOT(songitem_clicked(QTreeWidgetItem*,int)));
+ connect(&pm(), SIGNAL(projectLoaded(Project*)), this,
SLOT(set_project(Project*)));
}
-ProjectManagerDialog::~ ProjectManagerDialog( )
+ProjectManagerDialog::~ProjectManagerDialog()
{}
-void ProjectManagerDialog::update_projects_list()
+void ProjectManagerDialog::set_project(Project* project)
{
- projectListView->clear();
+ m_project = project;
- QString path = config().get_property("Project", "directory",
getenv("HOME")).toString();
-
- QDir dir(path);
-
- QStringList list = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot);
-
- foreach(QString dirname, list) {
+ if (m_project) {
+ connect(m_project, SIGNAL(songAdded(Song*)), this,
SLOT(update_song_list()));
+ connect(m_project, SIGNAL(songRemoved(Song*)), this,
SLOT(update_song_list()));
+ connect(m_project->get_history_stack(), SIGNAL(redoTextChanged
( const QString &)),
+ this, SLOT(redo_text_changed(const QString&)));
+ connect(m_project->get_history_stack(), SIGNAL(undoTextChanged
( const QString &)),
+ this, SLOT(undo_text_changed(const QString&)));
+ setWindowTitle("Manage Project - " + m_project->get_title());
+ descriptionTextEdit->setText(m_project->get_description());
+ } else {
+ setWindowTitle("Manage Project - No Project loaded!");
+ treeSongWidget->clear();
+ descriptionTextEdit->clear();
+ }
- /************ FROM HERE ****************/
- QDomDocument doc("Project");
- QString fileToOpen = path + "/" + dirname + "/project.traverso";
+ update_song_list();
+}
- QFile file(fileToOpen);
- if (!file.open(QIODevice::ReadOnly)) {
- PWARN("ProjectManagerDialog:: Cannot open project
properties file (%s)", fileToOpen.toAscii().data());
- continue;
+void ProjectManagerDialog::update_song_list( )
+{
+ if ( ! m_project) {
+ printf("ProjectManagerDialog:: no project ?\n");
+ return;
}
- QString errorMsg;
- if (!doc.setContent(&file, &errorMsg)) {
- file.close();
- PWARN("ProjectManagerDialog:: Cannot set content of XML
file (%s)", errorMsg.toAscii().data());
- continue;
- }
+ printf("update_song_list() \n");
- file.close();
+ treeSongWidget->clear();
+ foreach(Song* song, m_project->get_songs()) {
- QDomElement docElem = doc.documentElement();
- QDomNode propertiesNode =
docElem.firstChildElement("Properties");
- QDomElement e = propertiesNode.toElement();
- QString title = e.attribute( "title", "" );
- QString description = e.attribute("description", "No
description set");
- qint64 id = e.attribute( "id", "" ).toLongLong();
+ QString songNr =
QString::number(m_project->get_song_index(song->get_id()));
+ QString songName = "Song " + songNr + " - " + song->get_title();
+ QString numberOfTracks = QString::number(song->get_numtracks());
+ QString songLength = frame_to_smpte(song->get_last_frame(),
song->get_rate());
+ QString songStatus = song->is_changed()?"UnSaved":"Saved";
+ QString songSpaceAllocated = "Unknown";
+ QTreeWidgetItem* item = new QTreeWidgetItem(treeSongWidget);
+ item->setTextAlignment(1, Qt::AlignHCenter);
+ item->setTextAlignment(2, Qt::AlignHCenter);
+ item->setText(0, songName);
+ item->setText(1, numberOfTracks);
+ item->setText(2, songLength);
- QDomNode songsNode = docElem.firstChildElement("Songs");
- QDomNode songNode = songsNode.firstChild();
- int songCounter = 0;
+ item->setData(0, Qt::UserRole, song->get_id());
+ }
+}
- // count to get Songs number....
- while(!songNode.isNull()) {
- songCounter++;
- songNode = songNode.nextSibling();
+void ProjectManagerDialog::songitem_clicked( QTreeWidgetItem* item, int)
+{
+ if (!item) {
+ return;
}
- QString sNumSongs = QString::number(songCounter);
+ Song* song;
- /*********** TO HERE THIS CODE IS DUPLICATE FROM THAT IN
PROJECT.CC :-(
- Don't know if this is avoidable at all *********/
+ qint64 id = item->data(0, Qt::UserRole).toLongLong();
+ song = m_project->get_song(id);
+ Q_ASSERT(song);
- QTreeWidgetItem* item = new QTreeWidgetItem(projectListView);
- item->setTextAlignment(0, Qt::AlignLeft);
- item->setTextAlignment(1, Qt::AlignHCenter);
- item->setText(0, title);
- item->setText(1, sNumSongs);
- QString html = "<html><head></head><body>Project: " + title +
"<br /><br />";
- html += tr("Description:") + "<br />";
- html += description + "<br /><br />";
- html += tr("Created on:") + " " +
extract_date_time(id).toString() + "<br />";
- html += "</body></html>";
- item->setToolTip(0, html);
- }
-}
+ selectedSongName->setText(song->get_title());
-void ProjectManagerDialog::projectitem_clicked( QTreeWidgetItem* item, int)
-{
- if (item) {
- selectedProjectName->setText(item->text(0));
- }
+ m_project->set_current_song(song->get_id());
}
-void ProjectManagerDialog::on_loadProjectButton_clicked( )
+void ProjectManagerDialog::on_renameSongButton_clicked( )
{
- // do we have the name of the project to load ?
- QString title;
- if (projectListView->currentItem()) {
- title = projectListView->currentItem()->text(0);
- }
-
- if (title.isEmpty()) {
- info().warning(tr("No Project selected!") );
- info().information(tr("Select a project and click the 'Load'
button again") );
+ if( ! m_project) {
return;
}
- Project* project = pm().get_project();
+ QTreeWidgetItem* item = treeSongWidget->currentItem();
+
- if (project && (project->get_title() == title)) {
- QMessageBox::StandardButton button = QMessageBox::question(this,
- "Traverso - Question",
- "Are you sure you want to reopen the current project ?",
- QMessageBox::Ok | QMessageBox::Cancel,
- QMessageBox::Cancel );
- if (button == QMessageBox::Cancel) {
+ if ( ! item) {
return;
}
- }
- // first test if project exists
- // Note: this shouldn't be needed really, the projects in the view
- // should exist, but just in case someone removed it, you never know!
- if (!pm().project_exists(title)) {
- info().warning(tr("Project does not exist! (%1)").arg(title));
+ qint64 id = item->data(0, Qt::UserRole).toLongLong();
+ Song* song = m_project->get_song(id);
+
+ Q_ASSERT(song);
+
+ QString newtitle = selectedSongName->text();
+
+ if (newtitle.isEmpty()) {
+ info().information(tr("No new Song name was supplied!"));
return;
}
- if (pm().load_project(title)<0) {
- PERROR("Could not load project %s", title.toAscii().data());
- }
+ song->set_title(newtitle);
+
+ update_song_list();
}
-void ProjectManagerDialog::on_createProjectButton_clicked( )
+void ProjectManagerDialog::on_deleteSongButton_clicked( )
{
+ QTreeWidgetItem* item = treeSongWidget->currentItem();
- // do we have the name of the project to create ?
- QString title = newProjectName->text();
-
- if (title.length() == 0) {
- info().information(tr("You must supply a name for the
project!") );
+ if ( ! item ) {
return;
}
+ qint64 id = item->data(0, Qt::UserRole).toLongLong();
- // first test if project exists already
- if (pm().project_exists(title)) {
- switch (QMessageBox::information(this,
- tr("Traverso - Question"),
- tr("The Project \"%1\" already exists, do you want to
remove it and replace it with a new one ?").arg(title),
- tr("Yes"), tr("No"), QString::null, 1, -1))
- {
- case 0:
- pm().remove_project(title);
- break;
- default:
- return;
- break;
- }
- }
+
Command::process_command(m_project->remove_song(m_project->get_song(id)));
+}
- int numSongs = songCountSpinBox->value();
- int numTracks = trackCountSpinBox->value();
+void ProjectManagerDialog::on_createSongButton_clicked( )
+{
+ Interface::instance()->show_newsong_dialog();
+}
- Project* project;
- if( (project = pm().create_new_project(numSongs, numTracks, title)) ) {
- project->set_description(descriptionTextEdit->toPlainText());
- project->set_engineer(newProjectEngineer->text());
- project->save();
- delete project;
- update_projects_list();
- } else {
- info().warning(tr("Couldn't create project (%1)").arg(title) );
- }
+void ProjectManagerDialog::redo_text_changed(const QString & text)
+{
+ redoButton->setText(text);
}
-void ProjectManagerDialog::on_deleteProjectbutton_clicked( )
+void ProjectManagerDialog::undo_text_changed(const QString & text)
{
- // do we have the name of the project to delete ?
- QString title = selectedProjectName->text();
+ undoButton->setText(text);
+}
- if (title.isEmpty()) {
- info().information(tr("You must supply a name for the
project!") );
+void ProjectManagerDialog::on_undoButton_clicked()
+{
+ if (! m_project ) {
return;
}
- // first test if project exists
- if (!pm().project_exists(title)) {
- info().warning(tr("Project does not exist! (%1)").arg(title));
- return;
- }
+ m_project->get_history_stack()->undo();
+}
- switch (QMessageBox::information(this,
- tr("Traverso - Question"),
- tr("Are you sure that you want to remove the project %1 ?
It's not possible to undo it !").arg(title).toAscii().data(),
- "Yes", "No", QString::null, 1, -1)) {
- case 0:
- pm().remove_project(title);
- update_projects_list();
- break;
- default:
+void ProjectManagerDialog::on_redoButton_clicked()
+{
+ if (! m_project ) {
return;
- break;
}
- return;
+
+ m_project->get_history_stack()->redo();
}
+void ProjectManagerDialog::on_songsExportButton_clicked()
+{
+ Interface::instance()->show_export_widget();
+}
-void ProjectManagerDialog::on_projectDirSelectButton_clicked( )
+void ProjectManagerDialog::on_exportTemplateButton_clicked()
{
- QString path = config().get_property("Project", "DefaultDirectory",
getenv("HOME")).toString();
+}
- QString newPath = QFileDialog::getExistingDirectory(this,
- tr("Choose an existing or create a new Project
Directory"), path);
+//eof
- if (newPath.isEmpty() || newPath.isNull()) {
+void ProjectManagerDialog::accept()
+{
+ printf("accept\n");
+ if ( ! m_project ) {
+ hide();
return;
}
- QDir dir;
+ m_project->set_description(descriptionTextEdit->toPlainText());
- if (dir.exists(newPath)) {
-// QMessageBox::information( interface, tr("Traverso -
Information"), tr("Using existing Project directory: %1\n").arg(newPath), "OK",
0 );
- } else if (!dir.mkpath(newPath)) {
- QMessageBox::warning( this, tr("Traverso - Warning"),
tr("Unable to create Project directory! \n") +
- tr("Please check permission for this directory:
%1").arg(newPath) );
+ hide();
+}
+
+void ProjectManagerDialog::reject()
+{
+ printf("reject\n");
+ if ( ! m_project ) {
+ hide();
return;
- } else {
- QMessageBox::information( this, tr("Traverso - Information"),
tr("Created new Project directory for you here: %1\n").arg(newPath), "OK", 0 );
}
- config().set_property("Project", "directory", newPath);
-
- update_projects_list();
+ descriptionTextEdit->setText(m_project->get_description());
+ hide();
}
-
-//eof
Index: dialogs/project/ProjectManagerDialog.h
===================================================================
RCS file:
/sources/traverso/traverso/src/traverso/dialogs/project/ProjectManagerDialog.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- dialogs/project/ProjectManagerDialog.h 1 Mar 2007 00:20:17 -0000
1.2
+++ dialogs/project/ProjectManagerDialog.h 3 Apr 2007 19:05:38 -0000
1.3
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2005-2006 Remon Sijrier
+ Copyright (C) 2005-2007 Remon Sijrier
This file is part of Traverso
@@ -17,33 +17,50 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- $Id: ProjectManagerDialog.h,v 1.2 2007/03/01 00:20:17 r_sijrier Exp $
*/
-#ifndef PROJECT_MANAGER_DIALOG_H
-#define PROJECT_MANAGER_DIALOG_H
+#ifndef SONG_MANAGER_DIALOG_H
+#define SONG_MANAGER_DIALOG_H
#include "ui_ProjectManagerDialog.h"
#include <QDialog>
+class Project;
+class Song;
+
class ProjectManagerDialog : public QDialog, protected Ui::ProjectManagerDialog
{
-Q_OBJECT
+ Q_OBJECT
public:
ProjectManagerDialog(QWidget* parent = 0);
~ProjectManagerDialog();
+private:
+ Project* m_project;
+
private slots:
- void update_projects_list();
- void on_loadProjectButton_clicked();
- void on_createProjectButton_clicked();
- void on_deleteProjectbutton_clicked();
- void on_projectDirSelectButton_clicked();
- void projectitem_clicked( QTreeWidgetItem* , int );
+ void update_song_list();
+ void set_project(Project* project);
+ void songitem_clicked( QTreeWidgetItem* item, int);
+ void on_renameSongButton_clicked();
+ void on_deleteSongButton_clicked();
+ void on_createSongButton_clicked();
+
+ void redo_text_changed(const QString& text);
+ void undo_text_changed(const QString& text);
+
+ void on_undoButton_clicked();
+ void on_redoButton_clicked();
+ void on_songsExportButton_clicked();
+ void on_exportTemplateButton_clicked();
+
+ void accept();
+ void reject();
};
#endif
//eof
+
Index: Interface.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.cpp,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- Interface.cpp 3 Apr 2007 14:17:50 -0000 1.52
+++ Interface.cpp 3 Apr 2007 19:05:38 -0000 1.53
@@ -47,11 +47,11 @@
#include "dialogs/settings/SettingsDialog.h"
#include "dialogs/project/ProjectManagerDialog.h"
-#include "dialogs/project/SongManagerDialog.h"
+#include "dialogs/project/OpenCreateProjectDialog.h"
+#include <dialogs/project/NewSongDialog.h>
#include "dialogs/CDTextDialog.h"
#include "dialogs/MarkerDialog.h"
#include "dialogs/BusSelectorDialog.h"
-#include <dialogs/NewSongDialog.h>
// Always put me below _all_ includes, this is needed
@@ -169,7 +169,7 @@
exportWidget = 0;
m_settingsdialog = 0;
m_projectManagerDialog = 0;
- m_songManagerDialog = 0;
+ m_openCreateProjectDialog = 0;
m_cdTextDialog = 0;
m_markerDialog = 0;
m_busSelector = 0;
@@ -337,7 +337,7 @@
action = menu->addAction(tr("Open / Create"));
action->setIcon(style()->standardIcon(QStyle::SP_FileDialogContentsView));
action->setShortcuts(QKeySequence::Open);
- connect(action, SIGNAL(triggered(bool)), this,
SLOT(show_project_manager_dialog()));
+ connect(action, SIGNAL(triggered(bool)), this,
SLOT(show_open_create_project_dialog()));
menu->addSeparator();
@@ -361,7 +361,7 @@
action->setIcon(QIcon(find_pixmap(":/songmanager-16")));
m_projectSongManagerAction = action;
- connect(action, SIGNAL(triggered(bool)), this,
SLOT(show_song_manager_dialog()));
+ connect(action, SIGNAL(triggered(bool)), this,
SLOT(show_project_manager_dialog()));
action = menu->addAction(tr("Export"));
action->setIcon(style()->standardIcon(QStyle::SP_DialogApplyButton));
@@ -728,12 +728,12 @@
return 0;
}
-void Interface::show_song_manager_dialog()
+Command* Interface::show_open_create_project_dialog()
{
- if (! m_songManagerDialog ) {
- m_songManagerDialog = new SongManagerDialog(this);
+ if (! m_openCreateProjectDialog ) {
+ m_openCreateProjectDialog = new OpenCreateProjectDialog(this);
}
- m_songManagerDialog->show();
+ m_openCreateProjectDialog->show();
}
Command * Interface::show_cdtext_dialog()
Index: Interface.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.h,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- Interface.h 3 Apr 2007 14:17:50 -0000 1.25
+++ Interface.h 3 Apr 2007 19:05:39 -0000 1.26
@@ -1,5 +1,5 @@
/*
-Copyright (C) 2005-2006 Remon Sijrier
+Copyright (C) 2005-2007 Remon Sijrier
This file is part of Traverso
@@ -54,7 +54,7 @@
class SpectralMeterWidget;
class SettingsDialog;
class ProjectManagerDialog;
-class SongManagerDialog;
+class OpenCreateProjectDialog;
class InfoToolBar;
class SysInfoToolBar;
class CDTextDialog;
@@ -101,7 +101,7 @@
SpectralMeterWidget* spectralMeter;
SettingsDialog* m_settingsdialog;
ProjectManagerDialog* m_projectManagerDialog;
- SongManagerDialog* m_songManagerDialog;
+ OpenCreateProjectDialog* m_openCreateProjectDialog;
CDTextDialog* m_cdTextDialog;
MarkerDialog* m_markerDialog;
InfoToolBar* m_infoBar;
@@ -139,13 +139,13 @@
void set_fade_in_shape(QAction* action);
void set_fade_out_shape(QAction* action);
void toggle_OpenGL(bool);
- void show_song_manager_dialog();
Command* show_song_widget();
Command* full_screen();
Command* about_traverso();
Command* show_export_widget();
Command* show_context_menu();
+ Command* show_open_create_project_dialog();
Command* show_project_manager_dialog();
Command* show_cdtext_dialog();
Command* show_marker_dialog();
Index: traverso.pro
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/traverso.pro,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- traverso.pro 3 Apr 2007 14:17:50 -0000 1.37
+++ traverso.pro 3 Apr 2007 19:05:39 -0000 1.38
@@ -45,7 +45,6 @@
precompile.h \
dialogs/settings/Pages.h \
dialogs/settings/SettingsDialog.h \
- dialogs/project/SongManagerDialog.h \
dialogs/project/ProjectManagerDialog.h \
songcanvas/MarkerView.h \
widgets/InfoWidgets.h \
@@ -53,7 +52,8 @@
dialogs/CDTextDialog.h \
dialogs/MarkerDialog.h \
dialogs/BusSelectorDialog.h \
- dialogs/NewSongDialog.h
+ dialogs/project/NewSongDialog.h \
+ dialogs/project/OpenCreateProjectDialog.h
SOURCES += \
Traverso.cpp \
AudioSourcesTreeWidget.cpp \
@@ -74,7 +74,6 @@
QuickDriverConfigWidget.cpp \
dialogs/settings/Pages.cpp \
dialogs/settings/SettingsDialog.cpp \
- dialogs/project/SongManagerDialog.cpp \
dialogs/project/ProjectManagerDialog.cpp \
songcanvas/MarkerView.cpp \
widgets/InfoWidgets.cpp \
@@ -82,7 +81,8 @@
dialogs/CDTextDialog.cpp \
dialogs/MarkerDialog.cpp \
dialogs/BusSelectorDialog.cpp \
- dialogs/NewSongDialog.cpp
+ dialogs/project/NewSongDialog.cpp \
+ dialogs/project/OpenCreateProjectDialog.cpp
FORMS += ui/ExportWidget.ui \
ui/AudioSourcesManagerWidget.ui \
ui/PluginSelectorDialog.ui \
@@ -100,7 +100,7 @@
ui/MarkerDialog.ui \
ui/CDTextDialog.ui \
ui/BusSelectorDialog.ui \
- ui/NewSongdialog.ui \
+ ui/OpenCreateProjectDialog.ui \
INCLUDEPATH += ../core \
@@ -145,7 +145,8 @@
# perhaps this doesn't cover mac os x ?
# if so, copy paste into macx section...
- $$system(pkg-config --libs glib-2.0)}
+ LIBS += $$system(pkg-config --libs glib-2.0)
+}
win32{
Index: ui/ProjectManagerDialog.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/ProjectManagerDialog.ui,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- ui/ProjectManagerDialog.ui 21 Mar 2007 19:21:26 -0000 1.6
+++ ui/ProjectManagerDialog.ui 3 Apr 2007 19:05:39 -0000 1.7
@@ -5,97 +5,56 @@
<rect>
<x>0</x>
<y>0</y>
- <width>520</width>
- <height>450</height>
+ <width>581</width>
+ <height>281</height>
</rect>
</property>
- <property name="minimumSize" >
- <size>
- <width>500</width>
- <height>410</height>
- </size>
- </property>
<property name="maximumSize" >
<size>
- <width>520</width>
- <height>450</height>
+ <width>600</width>
+ <height>500</height>
</size>
</property>
<property name="windowTitle" >
- <string>Open / Create Project</string>
- </property>
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>9</number>
- </property>
- <property name="spacing" >
- <number>6</number>
+ <string>Dialog</string>
</property>
- <item>
<layout class="QVBoxLayout" >
<property name="margin" >
- <number>0</number>
+ <number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
- </layout>
- </item>
<item>
- <layout class="QVBoxLayout" >
- <property name="margin" >
+ <widget class="QTabWidget" name="tabWidget" >
+ <property name="currentIndex" >
<number>0</number>
</property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <widget class="QTreeWidget" name="projectListView" >
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>7</vsizetype>
- <horstretch>2</horstretch>
- <verstretch>4</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize" >
- <size>
- <width>230</width>
- <height>0</height>
- </size>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" >
+ <widget class="QWidget" name="tab_4" >
+ <attribute name="title" >
+ <string>Project</string>
+ </attribute>
+ <layout class="QGridLayout" >
<property name="margin" >
- <number>0</number>
+ <number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
- <item>
- <widget class="QPushButton" name="projectDirSelectButton" >
- <property name="text" >
- <string>Select Project Dir</string>
+ <item rowspan="2" row="0" column="0" >
+ <widget class="QGroupBox" name="groupBox_3" >
+ <property name="title" >
+ <string>Informational</string>
</property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </item>
- <item>
<layout class="QVBoxLayout" >
<property name="margin" >
- <number>0</number>
+ <number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
- <layout class="QVBoxLayout" >
+ <layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
</property>
@@ -103,50 +62,30 @@
<number>6</number>
</property>
<item>
- <widget class="QGroupBox" name="groupBox_2" >
+ <widget class="QLabel" name="label" >
<property name="minimumSize" >
<size>
- <width>16</width>
- <height>90</height>
+ <width>100</width>
+ <height>0</height>
</size>
</property>
- <property name="title" >
- <string>Selected Project</string>
- </property>
- <layout class="QVBoxLayout" >
- <property name="margin" >
- <number>9</number>
- </property>
- <property name="spacing" >
- <number>9</number>
+ <property name="text" >
+ <string>Description</string>
</property>
+ </widget>
+ </item>
<item>
- <widget class="QLineEdit" name="selectedProjectName" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>1</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize" >
+ <widget class="QTextEdit" name="descriptionTextEdit" >
+ <property name="maximumSize" >
<size>
- <width>50</width>
- <height>0</height>
+ <width>16777215</width>
+ <height>50</height>
</size>
</property>
- <property name="mouseTracking" >
- <bool>true</bool>
- </property>
- <property name="readOnly" >
- <bool>false</bool>
- </property>
</widget>
</item>
+ </layout>
+ </item>
<item>
<layout class="QHBoxLayout" >
<property name="margin" >
@@ -156,139 +95,123 @@
<number>6</number>
</property>
<item>
- <widget class="QPushButton" name="deleteProjectbutton" >
+ <widget class="QLabel" name="label_2" >
+ <property name="minimumSize" >
+ <size>
+ <width>100</width>
+ <height>0</height>
+ </size>
+ </property>
<property name="text" >
- <string>Delete</string>
+ <string>Engineer</string>
</property>
</widget>
</item>
<item>
+ <widget class="QLineEdit" name="lineEdit" />
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="2" column="0" >
<spacer>
<property name="orientation" >
- <enum>Qt::Horizontal</enum>
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType" >
+ <enum>QSizePolicy::Maximum</enum>
</property>
<property name="sizeHint" >
<size>
- <width>61</width>
- <height>27</height>
+ <width>20</width>
+ <height>40</height>
</size>
</property>
</spacer>
</item>
- <item>
- <widget class="QPushButton" name="loadProjectButton" >
- <property name="text" >
- <string>Load</string>
+ <item rowspan="2" row="1" column="2" >
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
</property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
</item>
- <item>
+ <item row="0" column="2" >
<widget class="QGroupBox" name="groupBox" >
<property name="minimumSize" >
<size>
- <width>16</width>
- <height>110</height>
+ <width>150</width>
+ <height>0</height>
</size>
</property>
<property name="title" >
- <string>New Project</string>
+ <string>Export</string>
</property>
<layout class="QVBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
- <number>6</number>
- </property>
- <item>
- <layout class="QHBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>6</number>
+ <number>9</number>
</property>
<item>
- <widget class="QLabel" name="label_2_2" >
- <property name="minimumSize" >
- <size>
- <width>70</width>
- <height>0</height>
- </size>
- </property>
+ <widget class="QPushButton" name="songsExportButton" >
<property name="text" >
- <string>Name</string>
+ <string>Song(s)</string>
</property>
</widget>
</item>
<item>
- <widget class="QLineEdit" name="newProjectName" >
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>2</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize" >
- <size>
- <width>100</width>
- <height>0</height>
- </size>
+ <widget class="QPushButton" name="exportTemplateButton" >
+ <property name="text" >
+ <string>Template</string>
</property>
</widget>
</item>
</layout>
+ </widget>
</item>
- <item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="tab" >
+ <attribute name="title" >
+ <string>Songs</string>
+ </attribute>
<layout class="QHBoxLayout" >
<property name="margin" >
- <number>0</number>
+ <number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
- <widget class="QLabel" name="label" >
- <property name="minimumSize" >
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="text" >
- <string>Description</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QTextEdit" name="descriptionTextEdit" >
+ <widget class="QTreeWidget" name="treeSongWidget" >
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>7</hsizetype>
<vsizetype>7</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
+ <horstretch>10</horstretch>
+ <verstretch>5</verstretch>
</sizepolicy>
</property>
- <property name="maximumSize" >
+ <property name="minimumSize" >
<size>
- <width>16777215</width>
- <height>30</height>
+ <width>250</width>
+ <height>120</height>
</size>
</property>
</widget>
</item>
- </layout>
- </item>
<item>
- <layout class="QHBoxLayout" >
+ <layout class="QVBoxLayout" >
<property name="margin" >
<number>0</number>
</property>
@@ -296,32 +219,27 @@
<number>6</number>
</property>
<item>
- <widget class="QLabel" name="label_3_2" >
+ <widget class="QGroupBox" name="groupBox_4" >
+ <property name="title" >
+ <string>Selected Song</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="selectedSongName" >
<property name="minimumSize" >
<size>
- <width>70</width>
+ <width>0</width>
<height>0</height>
</size>
</property>
- <property name="text" >
- <string>Engineer</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="newProjectEngineer" >
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>7</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>2</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
</widget>
</item>
- </layout>
- </item>
<item>
<layout class="QHBoxLayout" >
<property name="margin" >
@@ -331,84 +249,56 @@
<number>6</number>
</property>
<item>
- <widget class="QLabel" name="label_2_2_2" >
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>2</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
+ <widget class="QPushButton" name="deleteSongButton" >
<property name="text" >
- <string>Song count</string>
+ <string>Delete</string>
+ </property>
+ <property name="autoDefault" >
+ <bool>false</bool>
</property>
</widget>
</item>
<item>
- <widget class="QSpinBox" name="songCountSpinBox" >
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>1</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
</property>
- <property name="minimumSize" >
+ <property name="sizeType" >
+ <enum>QSizePolicy::Minimum</enum>
+ </property>
+ <property name="sizeHint" >
<size>
- <width>40</width>
- <height>0</height>
+ <width>1</width>
+ <height>20</height>
</size>
</property>
- <property name="minimum" >
- <number>1</number>
- </property>
- <property name="value" >
- <number>1</number>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="renameSongButton" >
+ <property name="text" >
+ <string>Rename</string>
</property>
</widget>
</item>
</layout>
</item>
+ </layout>
+ </widget>
+ </item>
<item>
+ <widget class="QGroupBox" name="groupBox_2" >
+ <property name="title" >
+ <string>New Song</string>
+ </property>
<layout class="QHBoxLayout" >
<property name="margin" >
- <number>0</number>
+ <number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
- <widget class="QLabel" name="label_2" >
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>5</vsizetype>
- <horstretch>2</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>Tracks per Song</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="trackCountSpinBox" >
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>1</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>1</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
@@ -417,32 +307,36 @@
<number>6</number>
</property>
<item>
- <widget class="QLabel" name="label_4_2" >
- <property name="minimumSize" >
- <size>
- <width>70</width>
- <height>0</height>
- </size>
- </property>
+ <widget class="QPushButton" name="createSongButton" >
<property name="text" >
- <string>Template</string>
+ <string>Create new Song</string>
</property>
</widget>
</item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
<item>
- <widget class="QComboBox" name="templateComboBox" >
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>2</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
</property>
- </widget>
+ <property name="sizeHint" >
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
</item>
</layout>
</item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
<item>
<layout class="QHBoxLayout" >
<property name="margin" >
@@ -452,50 +346,38 @@
<number>6</number>
</property>
<item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
</property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
+ <property name="spacing" >
+ <number>6</number>
</property>
- </spacer>
- </item>
<item>
- <widget class="QPushButton" name="createProjectButton" >
- <property name="sizePolicy" >
- <sizepolicy>
- <hsizetype>5</hsizetype>
- <vsizetype>0</vsizetype>
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
+ <widget class="QPushButton" name="undoButton" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>22</height>
+ </size>
</property>
<property name="text" >
- <string>Create</string>
+ <string/>
</property>
</widget>
</item>
- </layout>
- </item>
- </layout>
- </widget>
- </item>
<item>
- <spacer>
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" >
+ <widget class="QPushButton" name="redoButton" >
+ <property name="maximumSize" >
<size>
- <width>254</width>
- <height>16</height>
+ <width>16777215</width>
+ <height>22</height>
</size>
</property>
- </spacer>
+ <property name="text" >
+ <string/>
+ </property>
+ </widget>
</item>
</layout>
</item>
@@ -505,7 +387,7 @@
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons" >
- <set>QDialogButtonBox::Close</set>
+
<set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
@@ -516,66 +398,50 @@
<resources/>
<connections>
<connection>
- <sender>projectListView</sender>
- <signal>doubleClicked(QModelIndex)</signal>
- <receiver>loadProjectButton</receiver>
- <slot>animateClick()</slot>
- <hints>
- <hint type="sourcelabel" >
- <x>196</x>
- <y>204</y>
- </hint>
- <hint type="destinationlabel" >
- <x>460</x>
- <y>310</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>newProjectName</sender>
+ <sender>selectedSongName</sender>
<signal>returnPressed()</signal>
- <receiver>createProjectButton</receiver>
- <slot>click()</slot>
+ <receiver>renameSongButton</receiver>
+ <slot>animateClick()</slot>
<hints>
<hint type="sourcelabel" >
- <x>215</x>
- <y>444</y>
+ <x>548</x>
+ <y>96</y>
</hint>
<hint type="destinationlabel" >
- <x>427</x>
- <y>503</y>
+ <x>547</x>
+ <y>130</y>
</hint>
</hints>
</connection>
<connection>
- <sender>newProjectEngineer</sender>
- <signal>returnPressed()</signal>
- <receiver>createProjectButton</receiver>
- <slot>click()</slot>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>ProjectManagerDialog</receiver>
+ <slot>accept()</slot>
<hints>
<hint type="sourcelabel" >
- <x>235</x>
- <y>475</y>
+ <x>543</x>
+ <y>250</y>
</hint>
<hint type="destinationlabel" >
- <x>408</x>
- <y>503</y>
+ <x>576</x>
+ <y>219</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
- <signal>clicked(QAbstractButton*)</signal>
+ <signal>rejected()</signal>
<receiver>ProjectManagerDialog</receiver>
- <slot>accept()</slot>
+ <slot>reject()</slot>
<hints>
<hint type="sourcelabel" >
- <x>29</x>
- <y>547</y>
+ <x>477</x>
+ <y>254</y>
</hint>
<hint type="destinationlabel" >
- <x>355</x>
- <y>527</y>
+ <x>492</x>
+ <y>240</y>
</hint>
</hints>
</connection>
Index: ui/SongManagerDialog.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/SongManagerDialog.ui,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- ui/SongManagerDialog.ui 3 Apr 2007 14:17:50 -0000 1.5
+++ ui/SongManagerDialog.ui 3 Apr 2007 19:05:39 -0000 1.6
@@ -1,17 +1,17 @@
<ui version="4.0" >
- <class>SongManagerDialog</class>
- <widget class="QDialog" name="SongManagerDialog" >
+ <class>ProjectManagerDialog</class>
+ <widget class="QDialog" name="ProjectManagerDialog" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
- <width>530</width>
- <height>236</height>
+ <width>600</width>
+ <height>309</height>
</rect>
</property>
<property name="maximumSize" >
<size>
- <width>530</width>
+ <width>600</width>
<height>500</height>
</size>
</property>
@@ -26,9 +26,22 @@
<number>6</number>
</property>
<item>
+ <widget class="QTabWidget" name="tabWidget" >
+ <property name="currentIndex" >
+ <number>1</number>
+ </property>
+ <widget class="QWidget" name="tab_4" >
+ <attribute name="title" >
+ <string>Project</string>
+ </attribute>
+ </widget>
+ <widget class="QWidget" name="tab" >
+ <attribute name="title" >
+ <string>Songs</string>
+ </attribute>
<layout class="QHBoxLayout" >
<property name="margin" >
- <number>0</number>
+ <number>9</number>
</property>
<property name="spacing" >
<number>6</number>
@@ -39,7 +52,7 @@
<sizepolicy>
<hsizetype>7</hsizetype>
<vsizetype>7</vsizetype>
- <horstretch>2</horstretch>
+ <horstretch>10</horstretch>
<verstretch>5</verstretch>
</sizepolicy>
</property>
@@ -60,14 +73,6 @@
<number>6</number>
</property>
<item>
- <layout class="QVBoxLayout" >
- <property name="margin" >
- <number>0</number>
- </property>
- <property name="spacing" >
- <number>6</number>
- </property>
- <item>
<widget class="QGroupBox" name="groupBox_4" >
<property name="title" >
<string>Selected Song</string>
@@ -113,11 +118,11 @@
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType" >
- <enum>QSizePolicy::Preferred</enum>
+ <enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" >
<size>
- <width>40</width>
+ <width>10</width>
<height>20</height>
</size>
</property>
@@ -167,8 +172,6 @@
</layout>
</widget>
</item>
- </layout>
- </item>
<item>
<spacer>
<property name="orientation" >
@@ -185,6 +188,52 @@
</layout>
</item>
</layout>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="undoPushButton" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>undotext</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="redoPushButton" >
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>22</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>redotext</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox" >
@@ -197,38 +246,40 @@
</widget>
</item>
</layout>
+ </item>
+ </layout>
</widget>
<resources/>
<connections>
<connection>
- <sender>selectedSongName</sender>
- <signal>returnPressed()</signal>
- <receiver>renameSongButton</receiver>
- <slot>animateClick()</slot>
+ <sender>buttonBox</sender>
+ <signal>clicked(QAbstractButton*)</signal>
+ <receiver>ProjectManagerDialog</receiver>
+ <slot>accept()</slot>
<hints>
<hint type="sourcelabel" >
- <x>189</x>
- <y>254</y>
+ <x>520</x>
+ <y>424</y>
</hint>
<hint type="destinationlabel" >
- <x>202</x>
- <y>272</y>
+ <x>526</x>
+ <y>327</y>
</hint>
</hints>
</connection>
<connection>
- <sender>buttonBox</sender>
- <signal>clicked(QAbstractButton*)</signal>
- <receiver>SongManagerDialog</receiver>
- <slot>accept()</slot>
+ <sender>selectedSongName</sender>
+ <signal>returnPressed()</signal>
+ <receiver>renameSongButton</receiver>
+ <slot>animateClick()</slot>
<hints>
<hint type="sourcelabel" >
- <x>515</x>
- <y>332</y>
+ <x>484</x>
+ <y>114</y>
</hint>
<hint type="destinationlabel" >
- <x>526</x>
- <y>327</y>
+ <x>497</x>
+ <y>148</y>
</hint>
</hints>
</connection>
Index: dialogs/project/NewSongDialog.cpp
===================================================================
RCS file: dialogs/project/NewSongDialog.cpp
diff -N dialogs/project/NewSongDialog.cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ dialogs/project/NewSongDialog.cpp 3 Apr 2007 19:05:38 -0000 1.1
@@ -0,0 +1,125 @@
+/*
+Copyright (C) 2007 Remon Sijrier
+
+This file is part of Traverso
+
+Traverso 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; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+*/
+
+
+#include "NewSongDialog.h"
+
+#include <libtraversocore.h>
+
+NewSongDialog::NewSongDialog(QWidget * parent)
+ : QDialog(parent)
+{
+ setupUi(this);
+
+ trackCountSpinBox->setValue(config().get_property("Song",
"trackCreationCount", 4).toInt());
+
+ set_project(pm().get_project());
+
+ connect(&pm(), SIGNAL(projectLoaded(Project*)), this,
SLOT(set_project(Project*)));
+ connect(useTemplateCheckBox, SIGNAL(stateChanged (int)), this,
SLOT(use_template_checkbox_state_changed(int)));
+}
+
+void NewSongDialog::accept()
+{
+ if (! m_project) {
+ info().information(tr("I can't create a new Song if here is no
Project loaded!!"));
+ return;
+ }
+
+ int count = countSpinBox->value();
+ int trackcount = trackCountSpinBox->value();
+ QString title = titleLineEdit->text();
+
+ if (title.isEmpty()) {
+ title = "Untitled";
+ }
+
+ int index = templateComboBox->currentIndex();
+ printf("index is %d\n", index);
+ bool usetemplate = false;
+ QDomNode node;
+ if (useTemplateCheckBox->isChecked() && index >= 0) {
+ usetemplate = true;
+ Song* templatesong =
m_project->get_song(templateComboBox->itemData(index).toLongLong());
+ Q_ASSERT(templatesong);
+ QDomDocument doc("Song");
+ node = templatesong->get_state(doc, usetemplate);
+ }
+
+ for (int i=0; i<count; ++i) {
+ Song* song;
+ if (usetemplate) {
+ song = new Song(m_project);
+ song->set_state(node);
+ } else {
+ song = new Song(m_project, trackcount);
+ }
+ song->set_title(title);
+ Command::process_command(m_project->add_song(song));
+ }
+
+ hide();
+}
+
+void NewSongDialog::set_project(Project * project)
+{
+ m_project = project;
+
+ if (! m_project) {
+ templateComboBox->clear();
+ return;
+ }
+
+ connect(m_project, SIGNAL(songAdded(Song*)), this,
SLOT(update_template_combo()));
+ connect(m_project, SIGNAL(songRemoved(Song*)), this,
SLOT(update_template_combo()));
+
+ update_template_combo();
+}
+
+void NewSongDialog::reject()
+{
+ hide();
+}
+
+void NewSongDialog::update_template_combo()
+{
+ templateComboBox->clear();
+
+ foreach(Song* song, m_project->get_songs()) {
+ QString text = "Song " +
QString::number(m_project->get_song_index(song->get_id())) +
+ " " + song->get_title();
+
+ templateComboBox->addItem(text, song->get_id());
+ connect(song, SIGNAL(propertyChanged()), this,
SLOT(update_template_combo()));
+ }
+}
+
+void NewSongDialog::use_template_checkbox_state_changed(int state)
+{
+ if (state == Qt::Checked) {
+ templateComboBox->setEnabled(true);
+ trackCountSpinBox->setEnabled(false);
+ } else {
+ templateComboBox->setEnabled(false);
+ trackCountSpinBox->setEnabled(true);
+ }
+}
+
Index: dialogs/project/NewSongDialog.h
===================================================================
RCS file: dialogs/project/NewSongDialog.h
diff -N dialogs/project/NewSongDialog.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ dialogs/project/NewSongDialog.h 3 Apr 2007 19:05:38 -0000 1.1
@@ -0,0 +1,53 @@
+/*
+Copyright (C) 2007 Remon Sijrier
+
+This file is part of Traverso
+
+Traverso 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; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+*/
+
+#ifndef NEW_SONG_DIALOG_H
+#define NEW_SONG_DIALOG_H
+
+#include "ui_NewSongDialog.h"
+
+#include <QDialog>
+
+class Project;
+
+class NewSongDialog : public QDialog, protected Ui::NewSongDialog
+{
+ Q_OBJECT
+
+public:
+ NewSongDialog(QWidget* parent = 0);
+ ~NewSongDialog() {};
+
+
+private:
+ Project* m_project;
+
+
+private slots:
+ void accept();
+ void reject();
+ void set_project(Project* project);
+ void update_template_combo();
+ void use_template_checkbox_state_changed(int state);
+
+};
+
+#endif
Index: dialogs/project/OpenCreateProjectDialog.cpp
===================================================================
RCS file: dialogs/project/OpenCreateProjectDialog.cpp
diff -N dialogs/project/OpenCreateProjectDialog.cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ dialogs/project/OpenCreateProjectDialog.cpp 3 Apr 2007 19:05:38 -0000
1.1
@@ -0,0 +1,288 @@
+/*
+ Copyright (C) 2005-2006 Remon Sijrier
+
+ This file is part of Traverso
+
+ Traverso 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; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+*/
+
+#include "OpenCreateProjectDialog.h"
+#include "ui_OpenCreateProjectDialog.h"
+
+#include <QDir>
+#include <QStringList>
+#include <QMessageBox>
+#include <QTextStream>
+#include <QDomDocument>
+#include <QFileDialog>
+#include <QHeaderView>
+
+#include <Config.h>
+#include <Information.h>
+#include <ProjectManager.h>
+#include <Project.h>
+#include <Utils.h>
+
+
+// Always put me below _all_ includes, this is needed
+// in case we run with memory leak detection enabled!
+#include "Debugger.h"
+
+OpenCreateProjectDialog::OpenCreateProjectDialog( QWidget * parent )
+ : QDialog(parent)
+{
+ setupUi(this);
+ projectListView->setColumnCount(2);
+ update_projects_list();
+ QStringList stringList;
+ stringList << "Project Name" << "Songs";
+ projectListView->setHeaderLabels(stringList);
+
+ projectListView->header()->resizeSection(0, 160);
+ projectListView->header()->resizeSection(1, 30);
+
+ trackCountSpinBox->setValue(config().get_property("Song",
"trackCreationCount", 4).toInt());
+
+
+ connect(projectListView, SIGNAL(itemClicked(QTreeWidgetItem*,int)),
this, SLOT(projectitem_clicked(QTreeWidgetItem*,int)));
+}
+
+OpenCreateProjectDialog::~ OpenCreateProjectDialog( )
+{}
+
+void OpenCreateProjectDialog::update_projects_list()
+{
+ projectListView->clear();
+
+ QString path = config().get_property("Project", "directory",
getenv("HOME")).toString();
+
+ QDir dir(path);
+
+ QStringList list = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot);
+
+ foreach(QString dirname, list) {
+
+ /************ FROM HERE ****************/
+ QDomDocument doc("Project");
+ QString fileToOpen = path + "/" + dirname + "/project.traverso";
+
+ QFile file(fileToOpen);
+
+ if (!file.open(QIODevice::ReadOnly)) {
+ PWARN("OpenCreateProjectDialog:: Cannot open project
properties file (%s)", fileToOpen.toAscii().data());
+ continue;
+ }
+
+ QString errorMsg;
+ if (!doc.setContent(&file, &errorMsg)) {
+ file.close();
+ PWARN("OpenCreateProjectDialog:: Cannot set content of
XML file (%s)", errorMsg.toAscii().data());
+ continue;
+ }
+
+ file.close();
+
+ QDomElement docElem = doc.documentElement();
+ QDomNode propertiesNode =
docElem.firstChildElement("Properties");
+ QDomElement e = propertiesNode.toElement();
+ QString title = e.attribute( "title", "" );
+ QString description = e.attribute("description", "No
description set");
+ qint64 id = e.attribute( "id", "" ).toLongLong();
+
+
+ QDomNode songsNode = docElem.firstChildElement("Songs");
+ QDomNode songNode = songsNode.firstChild();
+ int songCounter = 0;
+
+ // count to get Songs number....
+ while(!songNode.isNull()) {
+ songCounter++;
+ songNode = songNode.nextSibling();
+ }
+
+ QString sNumSongs = QString::number(songCounter);
+
+ /*********** TO HERE THIS CODE IS DUPLICATE FROM THAT IN
PROJECT.CC :-(
+ Don't know if this is avoidable at all *********/
+
+
+ QTreeWidgetItem* item = new QTreeWidgetItem(projectListView);
+ item->setTextAlignment(0, Qt::AlignLeft);
+ item->setTextAlignment(1, Qt::AlignHCenter);
+ item->setText(0, title);
+ item->setText(1, sNumSongs);
+ QString html = "<html><head></head><body>Project: " + title +
"<br /><br />";
+ html += tr("Description:") + "<br />";
+ html += description + "<br /><br />";
+ html += tr("Created on:") + " " +
extract_date_time(id).toString() + "<br />";
+ html += "</body></html>";
+ item->setToolTip(0, html);
+ }
+}
+
+void OpenCreateProjectDialog::projectitem_clicked( QTreeWidgetItem* item, int)
+{
+ if (item) {
+ selectedProjectName->setText(item->text(0));
+ }
+}
+
+void OpenCreateProjectDialog::on_loadProjectButton_clicked( )
+{
+ // do we have the name of the project to load ?
+ QString title;
+ if (projectListView->currentItem()) {
+ title = projectListView->currentItem()->text(0);
+ }
+
+ if (title.isEmpty()) {
+ info().warning(tr("No Project selected!") );
+ info().information(tr("Select a project and click the 'Load'
button again") );
+ return;
+ }
+
+ Project* project = pm().get_project();
+
+
+ if (project && (project->get_title() == title)) {
+ QMessageBox::StandardButton button = QMessageBox::question(this,
+ "Traverso - Question",
+ "Are you sure you want to reopen the current project ?",
+ QMessageBox::Ok | QMessageBox::Cancel,
+ QMessageBox::Cancel );
+ if (button == QMessageBox::Cancel) {
+ return;
+ }
+ }
+
+ // first test if project exists
+ // Note: this shouldn't be needed really, the projects in the view
+ // should exist, but just in case someone removed it, you never know!
+ if (!pm().project_exists(title)) {
+ info().warning(tr("Project does not exist! (%1)").arg(title));
+ return;
+ }
+
+ if (pm().load_project(title)<0) {
+ PERROR("Could not load project %s", title.toAscii().data());
+ }
+}
+
+void OpenCreateProjectDialog::on_createProjectButton_clicked( )
+{
+
+ // do we have the name of the project to create ?
+ QString title = newProjectName->text();
+
+ if (title.length() == 0) {
+ info().information(tr("You must supply a name for the
project!") );
+ return;
+ }
+
+
+ // first test if project exists already
+ if (pm().project_exists(title)) {
+ switch (QMessageBox::information(this,
+ tr("Traverso - Question"),
+ tr("The Project \"%1\" already exists, do you want to
remove it and replace it with a new one ?").arg(title),
+ tr("Yes"), tr("No"), QString::null, 1, -1))
+ {
+ case 0:
+ pm().remove_project(title);
+ break;
+ default:
+ return;
+ break;
+ }
+ }
+
+ int numSongs = songCountSpinBox->value();
+ int numTracks = trackCountSpinBox->value();
+
+ Project* project;
+ if( (project = pm().create_new_project(numSongs, numTracks, title)) ) {
+ project->set_description(descriptionTextEdit->toPlainText());
+ project->set_engineer(newProjectEngineer->text());
+ project->save();
+ delete project;
+ update_projects_list();
+ } else {
+ info().warning(tr("Couldn't create project (%1)").arg(title) );
+ }
+}
+
+void OpenCreateProjectDialog::on_deleteProjectbutton_clicked( )
+{
+ // do we have the name of the project to delete ?
+ QString title = selectedProjectName->text();
+
+ if (title.isEmpty()) {
+ info().information(tr("You must supply a name for the
project!") );
+ return;
+ }
+
+ // first test if project exists
+ if (!pm().project_exists(title)) {
+ info().warning(tr("Project does not exist! (%1)").arg(title));
+ return;
+ }
+
+ switch (QMessageBox::information(this,
+ tr("Traverso - Question"),
+ tr("Are you sure that you want to remove the project %1 ?
It's not possible to undo it !").arg(title).toAscii().data(),
+ "Yes", "No", QString::null, 1, -1)) {
+ case 0:
+ pm().remove_project(title);
+ update_projects_list();
+ break;
+ default:
+ return;
+ break;
+ }
+ return;
+}
+
+
+void OpenCreateProjectDialog::on_projectDirSelectButton_clicked( )
+{
+ QString path = config().get_property("Project", "DefaultDirectory",
getenv("HOME")).toString();
+
+ QString newPath = QFileDialog::getExistingDirectory(this,
+ tr("Choose an existing or create a new Project
Directory"), path);
+
+ if (newPath.isEmpty() || newPath.isNull()) {
+ return;
+ }
+
+ QDir dir;
+
+ if (dir.exists(newPath)) {
+// QMessageBox::information( interface, tr("Traverso -
Information"), tr("Using existing Project directory: %1\n").arg(newPath), "OK",
0 );
+ } else if (!dir.mkpath(newPath)) {
+ QMessageBox::warning( this, tr("Traverso - Warning"),
tr("Unable to create Project directory! \n") +
+ tr("Please check permission for this directory:
%1").arg(newPath) );
+ return;
+ } else {
+ QMessageBox::information( this, tr("Traverso - Information"),
tr("Created new Project directory for you here: %1\n").arg(newPath), "OK", 0 );
+ }
+
+ config().set_property("Project", "directory", newPath);
+
+ update_projects_list();
+}
+
+
+//eof
Index: dialogs/project/OpenCreateProjectDialog.h
===================================================================
RCS file: dialogs/project/OpenCreateProjectDialog.h
diff -N dialogs/project/OpenCreateProjectDialog.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ dialogs/project/OpenCreateProjectDialog.h 3 Apr 2007 19:05:38 -0000
1.1
@@ -0,0 +1,49 @@
+/*
+ Copyright (C) 2005-2006 Remon Sijrier
+
+ This file is part of Traverso
+
+ Traverso 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; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ $Id: OpenCreateProjectDialog.h,v 1.1 2007/04/03 19:05:38 r_sijrier Exp $
+*/
+
+#ifndef PROJECT_MANAGER_DIALOG_H
+#define PROJECT_MANAGER_DIALOG_H
+
+#include "ui_OpenCreateProjectDialog.h"
+#include <QDialog>
+
+class OpenCreateProjectDialog : public QDialog, protected
Ui::OpenCreateProjectDialog
+{
+Q_OBJECT
+
+public:
+ OpenCreateProjectDialog(QWidget* parent = 0);
+ ~OpenCreateProjectDialog();
+
+private slots:
+ void update_projects_list();
+ void on_loadProjectButton_clicked();
+ void on_createProjectButton_clicked();
+ void on_deleteProjectbutton_clicked();
+ void on_projectDirSelectButton_clicked();
+ void projectitem_clicked( QTreeWidgetItem* , int );
+};
+
+#endif
+
+//eof
+
Index: ui/OpenCreateProjectDialog.ui
===================================================================
RCS file: ui/OpenCreateProjectDialog.ui
diff -N ui/OpenCreateProjectDialog.ui
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ui/OpenCreateProjectDialog.ui 3 Apr 2007 19:05:39 -0000 1.1
@@ -0,0 +1,583 @@
+<ui version="4.0" >
+ <class>OpenCreateProjectDialog</class>
+ <widget class="QDialog" name="OpenCreateProjectDialog" >
+ <property name="geometry" >
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>520</width>
+ <height>450</height>
+ </rect>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>500</width>
+ <height>410</height>
+ </size>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>520</width>
+ <height>450</height>
+ </size>
+ </property>
+ <property name="windowTitle" >
+ <string>Open / Create Project</string>
+ </property>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QTreeWidget" name="projectListView" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>2</horstretch>
+ <verstretch>4</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>230</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="projectDirSelectButton" >
+ <property name="text" >
+ <string>Select Project Dir</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox_2" >
+ <property name="minimumSize" >
+ <size>
+ <width>16</width>
+ <height>90</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>Selected Project</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>9</number>
+ </property>
+ <item>
+ <widget class="QLineEdit" name="selectedProjectName" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="mouseTracking" >
+ <bool>true</bool>
+ </property>
+ <property name="readOnly" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="deleteProjectbutton" >
+ <property name="text" >
+ <string>Delete</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>61</width>
+ <height>27</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="loadProjectButton" >
+ <property name="text" >
+ <string>Load</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox" >
+ <property name="minimumSize" >
+ <size>
+ <width>16</width>
+ <height>110</height>
+ </size>
+ </property>
+ <property name="title" >
+ <string>New Project</string>
+ </property>
+ <layout class="QVBoxLayout" >
+ <property name="margin" >
+ <number>9</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_2_2" >
+ <property name="minimumSize" >
+ <size>
+ <width>70</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Name</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="newProjectName" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>2</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>100</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label" >
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Description</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTextEdit" name="descriptionTextEdit" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>16777215</width>
+ <height>30</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_3_2" >
+ <property name="minimumSize" >
+ <size>
+ <width>70</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Engineer</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="newProjectEngineer" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>2</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_2_2_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>2</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Song count</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="songCountSpinBox" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>40</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="minimum" >
+ <number>1</number>
+ </property>
+ <property name="value" >
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_2" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>2</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Tracks per Song</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="trackCountSpinBox" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_4_2" >
+ <property name="minimumSize" >
+ <size>
+ <width>70</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Template</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="templateComboBox" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>2</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" >
+ <property name="margin" >
+ <number>0</number>
+ </property>
+ <property name="spacing" >
+ <number>6</number>
+ </property>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="createProjectButton" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Create</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" >
+ <size>
+ <width>254</width>
+ <height>16</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons" >
+ <set>QDialogButtonBox::Close</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>projectListView</sender>
+ <signal>doubleClicked(QModelIndex)</signal>
+ <receiver>loadProjectButton</receiver>
+ <slot>animateClick()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>196</x>
+ <y>204</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>460</x>
+ <y>310</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>newProjectName</sender>
+ <signal>returnPressed()</signal>
+ <receiver>createProjectButton</receiver>
+ <slot>click()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>215</x>
+ <y>444</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>427</x>
+ <y>503</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>newProjectEngineer</sender>
+ <signal>returnPressed()</signal>
+ <receiver>createProjectButton</receiver>
+ <slot>click()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>235</x>
+ <y>475</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>408</x>
+ <y>503</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>clicked(QAbstractButton*)</signal>
+ <receiver>OpenCreateProjectDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>29</x>
+ <y>547</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>355</x>
+ <y>527</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
Index: dialogs/project/SongManagerDialog.cpp
===================================================================
RCS file: dialogs/project/SongManagerDialog.cpp
diff -N dialogs/project/SongManagerDialog.cpp
--- dialogs/project/SongManagerDialog.cpp 3 Apr 2007 14:20:13 -0000
1.11
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,196 +0,0 @@
-/*
-Copyright (C) 2005-2006 Remon Sijrier
-
-This file is part of Traverso
-
-Traverso 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; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-*/
-
-#include "SongManagerDialog.h"
-
-#include "libtraversocore.h"
-#include <QStringList>
-#include <QMessageBox>
-#include <QFileDialog>
-#include <QHeaderView>
-#include <dialogs/NewSongDialog.h>
-#include <Interface.h>
-
-// Always put me below _all_ includes, this is needed
-// in case we run with memory leak detection enabled!
-#include "Debugger.h"
-
-SongManagerDialog::SongManagerDialog( QWidget * parent )
- : QDialog(parent)
-{
- setupUi(this);
-
- treeSongWidget->setColumnCount(3);
- treeSongWidget->header()->resizeSection(0, 160);
- treeSongWidget->header()->resizeSection(1, 55);
- treeSongWidget->header()->resizeSection(2, 70);
- QStringList stringList;
- stringList << "Song Name" << "Tracks" << "Length";
- treeSongWidget->setHeaderLabels(stringList);
-
- set_project(pm().get_project());
-
- connect(treeSongWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)),
this, SLOT(songitem_clicked(QTreeWidgetItem*,int)));
- connect(&pm(), SIGNAL(projectLoaded(Project*)), this,
SLOT(set_project(Project*)));
-}
-
-SongManagerDialog::~SongManagerDialog()
-{}
-
-void SongManagerDialog::set_project(Project* project)
-{
- m_project = project;
-
- if (m_project) {
- connect(m_project, SIGNAL(songAdded(Song*)), this,
SLOT(update_song_list()));
- connect(m_project, SIGNAL(songRemoved(Song*)), this,
SLOT(update_song_list()));
- setWindowTitle("Manage Project - " + m_project->get_title());
- } else {
- setWindowTitle("Manage Project - No Project loaded!");
- treeSongWidget->clear();
- }
-
- update_song_list();
-}
-
-
-void SongManagerDialog::update_song_list( )
-{
- if ( ! m_project) {
- printf("SongManagerDialog:: no project ?\n");
- return;
- }
-
- printf("update_song_list() \n");
-
- treeSongWidget->clear();
- foreach(Song* song, m_project->get_songs()) {
-
- QString songNr =
QString::number(m_project->get_song_index(song->get_id()));
- QString songName = "Song " + songNr + " - " + song->get_title();
- QString numberOfTracks = QString::number(song->get_numtracks());
- QString songLength = frame_to_smpte(song->get_last_frame(),
song->get_rate());
- QString songStatus = song->is_changed()?"UnSaved":"Saved";
- QString songSpaceAllocated = "Unknown";
-
- QTreeWidgetItem* item = new QTreeWidgetItem(treeSongWidget);
- item->setTextAlignment(1, Qt::AlignHCenter);
- item->setTextAlignment(2, Qt::AlignHCenter);
- item->setText(0, songName);
- item->setText(1, numberOfTracks);
- item->setText(2, songLength);
-
- item->setData(0, Qt::UserRole, song->get_id());
- }
-}
-
-void SongManagerDialog::songitem_clicked( QTreeWidgetItem* item, int)
-{
- if (!item) {
- return;
- }
-
- Song* song;
-
- qint64 id = item->data(0, Qt::UserRole).toLongLong();
- song = m_project->get_song(id);
-
- Q_ASSERT(song);
-
- selectedSongName->setText(song->get_title());
-
- m_project->set_current_song(song->get_id());
-}
-
-void SongManagerDialog::on_renameSongButton_clicked( )
-{
- if( ! m_project) {
- return;
- }
-
- QTreeWidgetItem* item = treeSongWidget->currentItem();
-
-
-
- if ( ! item) {
- return;
- }
-
- qint64 id = item->data(0, Qt::UserRole).toLongLong();
- Song* song = m_project->get_song(id);
-
- Q_ASSERT(song);
-
- QString newtitle = selectedSongName->text();
-
- if (newtitle.isEmpty()) {
- info().information(tr("No new Song name was supplied!"));
- return;
- }
-
- song->set_title(newtitle);
-
- update_song_list();
-}
-
-void SongManagerDialog::on_deleteSongButton_clicked( )
-{
- QTreeWidgetItem* item = treeSongWidget->currentItem();
-
- if ( ! item ) {
- return;
- }
-
- qint64 id = item->data(0, Qt::UserRole).toLongLong();
-
- // Hmmm, to which history stack should this one be pushed ???? :-(
-
Command::process_command(m_project->remove_song(m_project->get_song(id)));
-}
-
-void SongManagerDialog::on_createSongButton_clicked( )
-{
- Interface::instance()->show_newsong_dialog();
-}
-
-
-void SongManagerDialog::hideEvent(QHideEvent * event)
-{
- QDialog::hideEvent(event);
-
- if (m_project) {
- Song* song = m_project->get_current_song();
- if (song) {
-
pm().get_undogroup()->setActiveStack(song->get_history_stack());
- }
- }
-}
-
-void SongManagerDialog::showEvent(QShowEvent * event)
-{
- QDialog::showEvent(event);
-
- if (m_project) {
-
pm().get_undogroup()->setActiveStack(m_project->get_history_stack());
- }
-}
-
-//eof
-
Index: dialogs/project/SongManagerDialog.h
===================================================================
RCS file: dialogs/project/SongManagerDialog.h
diff -N dialogs/project/SongManagerDialog.h
--- dialogs/project/SongManagerDialog.h 3 Apr 2007 14:20:14 -0000 1.6
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,59 +0,0 @@
-/*
- Copyright (C) 2005-2006 Remon Sijrier
-
- This file is part of Traverso
-
- Traverso 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; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-
-*/
-
-#ifndef SONG_MANAGER_DIALOG_H
-#define SONG_MANAGER_DIALOG_H
-
-#include "ui_SongManagerDialog.h"
-#include <QDialog>
-
-class Project;
-class Song;
-
-class SongManagerDialog : public QDialog, protected Ui::SongManagerDialog
-{
- Q_OBJECT
-
-public:
- SongManagerDialog(QWidget* parent = 0);
- ~SongManagerDialog();
-
-protected:
- void hideEvent ( QHideEvent * event );
- void showEvent ( QShowEvent * event );
-
-private:
- Project* m_project;
-
-private slots:
- void update_song_list();
- void set_project(Project* project);
- void songitem_clicked( QTreeWidgetItem* item, int);
- void on_renameSongButton_clicked();
- void on_deleteSongButton_clicked();
- void on_createSongButton_clicked();
-};
-
-#endif
-
-//eof
-
-
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src/traverso dialogs/project/ProjectMa...,
Remon Sijrier <=