[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src core/ProjectManager.cpp core/Proje...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src core/ProjectManager.cpp core/Proje... |
Date: |
Mon, 29 Oct 2007 10:42:32 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/10/29 10:42:32
Modified files:
src/core : ProjectManager.cpp ProjectManager.h
src/traverso : Traverso.cpp
Log message:
* Make project loading by clicking on project.tpf file work again
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ProjectManager.cpp?cvsroot=traverso&r1=1.47&r2=1.48
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ProjectManager.h?cvsroot=traverso&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Traverso.cpp?cvsroot=traverso&r1=1.49&r2=1.50
Patches:
Index: core/ProjectManager.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ProjectManager.cpp,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- core/ProjectManager.cpp 29 Oct 2007 09:38:20 -0000 1.47
+++ core/ProjectManager.cpp 29 Oct 2007 10:42:31 -0000 1.48
@@ -286,7 +286,7 @@
return currentProject;
}
-void ProjectManager::start(QString projectToLoad)
+void ProjectManager::start()
{
QString defaultpath = config().get_property("Project",
"DefaultDirectory", "").toString();
QString projects_path = config().get_property("Project", "directory",
defaultpath).toString();
@@ -320,27 +320,19 @@
} else {
info().information(tr("Created new Project directory
for you here: %1\n").arg(newPath));
}
+
QDir newdir(newPath);
config().set_property("Project", "directory",
newdir.canonicalPath());
}
bool loadProjectAtStartUp = config().get_property("Project",
"loadLastUsed", 1).toBool();
- if (loadProjectAtStartUp || !(projectToLoad.isEmpty())) {
- if (!projectToLoad.isEmpty()) {
- int splitpoint = projectToLoad.lastIndexOf("/");
- QString dirpath = projectToLoad.left(splitpoint);
- int splitpoint2 = dirpath.lastIndexOf("/") + 1;
- projectToLoad = dirpath.right(splitpoint - splitpoint2);
- dirpath = dir.remove(projectToLoad);
- QDir dir(dirpath);
- config().set_property("Project", "directory",
dir.canonicalPath());
- } else {
- projectToLoad = config().get_property("Project",
"current", "").toString();
- }
+ if (loadProjectAtStartUp) {
+ QString projectToLoad = config().get_property("Project",
"current", "").toString();
- if ( projectToLoad.isNull() || projectToLoad.isEmpty() )
+ if (projectToLoad.isNull() || projectToLoad.isEmpty()) {
projectToLoad="Untitled";
+ }
if (project_exists(projectToLoad)) {
load_project(projectToLoad);
@@ -364,6 +356,14 @@
}
}
+void ProjectManager::start(const QString & basepath, const QString &
projectname)
+{
+ config().set_property("Project", "directory", basepath);
+
+ if (project_exists(projectname)) {
+ load_project(projectname);
+ }
+}
QUndoGroup* ProjectManager::get_undogroup() const
{
@@ -628,4 +628,3 @@
return 1;
}
-
Index: core/ProjectManager.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ProjectManager.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- core/ProjectManager.h 10 Oct 2007 16:41:57 -0000 1.21
+++ core/ProjectManager.h 29 Oct 2007 10:42:31 -0000 1.22
@@ -70,10 +70,10 @@
Project* get_project();
QUndoGroup* get_undogroup() const;
+ void start();
+ void start(const QString& basepath, const QString& projectname);
public slots:
- void start(QString projectToLoad);
-
Command* save_project();
Command* exit();
Command* undo();
Index: traverso/Traverso.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Traverso.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -b -r1.49 -r1.50
--- traverso/Traverso.cpp 29 Oct 2007 08:46:02 -0000 1.49
+++ traverso/Traverso.cpp 29 Oct 2007 10:42:31 -0000 1.50
@@ -121,21 +121,42 @@
config().save();
}
-
+#include <QFileInfo>
+#include <QDir>
void Traverso::create_interface( )
{
themer()->load();
Interface* iface = Interface::instance();
prepare_audio_device();
iface->show();
- QString projectToLoad;
+
+ QString projectToLoad = "";
+
foreach(QString string, QCoreApplication::arguments ()) {
if (string.contains("project.tpf")) {
projectToLoad = string;
break;
}
}
- pm().start(projectToLoad);
+
+ // The user clicked on a project.tpf file, start extracting the
+ // baseproject directory, and the project name from the filename.
+ if (!projectToLoad.isEmpty()) {
+ QFileInfo fi(projectToLoad);
+ QDir projectdir(fi.path());
+ QDir baseprojectdir(fi.path());
+ baseprojectdir.cdUp();
+ QString baseprojectdirpath = baseprojectdir.path();
+ QString projectdirpath = projectdir.path();
+ QString projectname =
projectdirpath.mid(baseprojectdirpath.length() + 1, projectdirpath.length());
+
+ if (!projectname.isEmpty() && ! baseprojectdirpath.isEmpty()) {
+ pm().start(baseprojectdirpath, projectname);
+ return;
+ }
+ }
+
+ pm().start();
}
void Traverso::shutdown( int signal )
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src core/ProjectManager.cpp core/Proje...,
Remon Sijrier <=