traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso/src/traverso dialogs/project/NewProjec...


From: Nicola Doebelin
Subject: [Traverso-commit] traverso/src/traverso dialogs/project/NewProjec...
Date: Tue, 20 May 2008 20:51:05 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Nicola Doebelin <n_doebelin>    08/05/20 20:51:05

Modified files:
        src/traverso/dialogs/project: NewProjectDialog.cpp 
                                      NewProjectDialog.h 
        src/traverso/ui: NewProjectDialog.ui 

Log message:
        * "New Project" dialog was modified. Doesn't work yet. Use the "Empty 
Project" tab for the moment.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/NewProjectDialog.cpp?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/project/NewProjectDialog.h?cvsroot=traverso&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/NewProjectDialog.ui?cvsroot=traverso&r1=1.4&r2=1.5

Patches:
Index: dialogs/project/NewProjectDialog.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/traverso/dialogs/project/NewProjectDialog.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- dialogs/project/NewProjectDialog.cpp        21 Jan 2008 16:25:16 -0000      
1.4
+++ dialogs/project/NewProjectDialog.cpp        20 May 2008 20:51:04 -0000      
1.5
@@ -30,12 +30,19 @@
 #include <QFileDialog>
 #include <QHeaderView>
 #include <QPushButton>
+#include <QTreeWidget>
+#include <QTreeWidgetItem>
+#include <QList>
+#include <QFileInfo>
 
 #include <Config.h>
 #include <Information.h>
 #include <ProjectManager.h>
 #include <Project.h>
+#include <Sheet.h>
+#include <Track.h>
 #include <Utils.h>
+#include "Import.h"
 
 
 // Always put me below _all_ includes, this is needed
@@ -54,6 +61,8 @@
        buttonBox->button(QDialogButtonBox::Ok)->setDefault(true);
 
        connect(useTemplateCheckBox, SIGNAL(stateChanged (int)), this, 
SLOT(use_template_checkbox_state_changed(int)));
+       connect(pushButtonAddFiles, SIGNAL(clicked()), this, SLOT(add_files()));
+       connect(pushButtonRemoveFiles, SIGNAL(clicked()), this, 
SLOT(remove_files()));
 }
 
 NewProjectDialog::~ NewProjectDialog( )
@@ -88,17 +97,31 @@
                }
        }
        
+       Project* project;
+       
        int numSheets = sheetCountSpinBox->value();
        int numTracks = trackCountSpinBox->value();
        
        int index = templateComboBox->currentIndex();
        bool usetemplate = false;
+
        if (useTemplateCheckBox->isChecked() && index >= 0) {
                usetemplate = true;
        }
        
-       Project* project;
-       
+       // check which method to use. If there are items in the 
treeWidgetFiles, ignore
+       // settings in the "empty project" tab. Else use settings from "empty 
project" tab.
+       int items = treeWidgetFiles->topLevelItemCount();
+       bool loadFiles = false;
+       if (items > 0)
+       {
+               //there are items in the treeWidgetFiles
+               loadFiles = true;
+               numSheets = 1;
+               numTracks = items;
+               project = pm().create_new_project(numSheets, numTracks, title);
+       } else {
+               //no items in the treeWidgetFiles
        if (usetemplate) {
                project = pm().create_new_project(QDir::homePath() + 
"/.traverso/ProjectTemplates/" + 
                                templateComboBox->itemText(index) + ".tpt", 
title);
@@ -106,6 +129,7 @@
        } else {
                project = pm().create_new_project(numSheets, numTracks, title);
        }
+       }
        
        if (! project) {
                info().warning(tr("Couldn't create project (%1)").arg(title) );
@@ -119,6 +143,11 @@
        
        pm().load_project(title);
        
+       if (loadFiles)
+       {
+               load_files();
+       }
+
        hide();
 }
 
@@ -142,5 +171,57 @@
        }
 }
 
+void NewProjectDialog::add_files()
+{
+       QStringList list = QFileDialog::getOpenFileNames(this, tr("Open Audio 
Files"), config().get_property("Project", "directory", 
"/directory/unknown").toString(), tr("Audio files (*.wav *.flac *.ogg *.mp3 
*.wv *.w64)"));
+
+       for(int i = 0; i < list.size(); ++i)
+       {
+               QStringList labels;
+               QFileInfo finfo(list.at(i));
+               labels << "Unnamed" << finfo.fileName();
+
+               QTreeWidgetItem* item = new QTreeWidgetItem(treeWidgetFiles, 
labels, 0);
+               item->setData(0, Qt::ToolTipRole, finfo.absoluteFilePath());
+               treeWidgetFiles->addTopLevelItem(item);
+       }
+}
+
+void NewProjectDialog::remove_files()
+{
+       QList<QTreeWidgetItem*> selection = treeWidgetFiles->selectedItems();
+
+       if (selection.isEmpty())
+       {
+               return;
+       }
+
+       while (!selection.isEmpty())
+       {
+               QTreeWidgetItem *it = selection.takeLast();
+               delete it;
+       }
+}
+
+void NewProjectDialog::load_files()
+{
+               Sheet* sheet = pm().get_project()->get_current_sheet();
+
+               int i = 0;
+               while(treeWidgetFiles->topLevelItemCount()) {
+                       QTreeWidgetItem* item = 
treeWidgetFiles->takeTopLevelItem(0);
+                       QString f = item->data(0, Qt::ToolTipRole).toString();
+                       delete item;
+
+                       if (i < sheet->get_numtracks())
+                       {
+printf(QS_C(QString("****** %1\n").arg(f)));
+                               Track* track = sheet->get_track_for_index(i);
+                               Import* cmd = new Import(track, f, 
(TimeRef)0.0);
+                               Command::process_command(cmd);
+                       }
+                       ++i;
+               }
+}
 
 //eof

Index: dialogs/project/NewProjectDialog.h
===================================================================
RCS file: 
/sources/traverso/traverso/src/traverso/dialogs/project/NewProjectDialog.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- dialogs/project/NewProjectDialog.h  4 Apr 2007 00:07:14 -0000       1.1
+++ dialogs/project/NewProjectDialog.h  20 May 2008 20:51:04 -0000      1.2
@@ -37,6 +37,9 @@
        void accept();
        void use_template_checkbox_state_changed(int state);
        void update_template_combobox();
+       void add_files();
+       void remove_files();
+       void load_files();
 };
 
 #endif

Index: ui/NewProjectDialog.ui
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/ui/NewProjectDialog.ui,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- ui/NewProjectDialog.ui      21 Jan 2008 16:22:18 -0000      1.4
+++ ui/NewProjectDialog.ui      20 May 2008 20:51:05 -0000      1.5
@@ -5,39 +5,30 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>283</width>
-    <height>284</height>
+    <width>358</width>
+    <height>443</height>
    </rect>
   </property>
   <property name="windowTitle" >
    <string>New Project</string>
   </property>
   <layout class="QVBoxLayout" >
-   <property name="margin" >
-    <number>9</number>
-   </property>
+   <item>
+    <layout class="QHBoxLayout" >
    <property name="spacing" >
     <number>6</number>
    </property>
-   <item>
-    <widget class="QGroupBox" name="groupBox" >
-     <property name="title" >
-      <string>New Project</string>
-     </property>
-     <layout class="QVBoxLayout" >
-      <property name="margin" >
-       <number>9</number>
+     <property name="leftMargin" >
+      <number>0</number>
       </property>
-      <property name="spacing" >
-       <number>6</number>
+     <property name="topMargin" >
+      <number>0</number>
       </property>
-      <item>
-       <layout class="QHBoxLayout" >
-        <property name="margin" >
+     <property name="rightMargin" >
          <number>0</number>
         </property>
-        <property name="spacing" >
-         <number>6</number>
+     <property name="bottomMargin" >
+      <number>0</number>
         </property>
         <item>
          <widget class="QLabel" name="label_2_2" >
@@ -55,9 +46,7 @@
         <item>
          <widget class="QLineEdit" name="newProjectName" >
           <property name="sizePolicy" >
-           <sizepolicy>
-            <hsizetype>7</hsizetype>
-            <vsizetype>0</vsizetype>
+        <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
             <horstretch>2</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
@@ -68,12 +57,21 @@
       </item>
       <item>
        <layout class="QHBoxLayout" >
-        <property name="margin" >
-         <number>0</number>
-        </property>
         <property name="spacing" >
          <number>6</number>
         </property>
+     <property name="leftMargin" >
+      <number>0</number>
+     </property>
+     <property name="topMargin" >
+      <number>0</number>
+     </property>
+     <property name="rightMargin" >
+      <number>0</number>
+     </property>
+     <property name="bottomMargin" >
+      <number>0</number>
+     </property>
         <item>
          <widget class="QLabel" name="label" >
           <property name="minimumSize" >
@@ -90,9 +88,7 @@
         <item>
          <widget class="QTextEdit" name="descriptionTextEdit" >
           <property name="sizePolicy" >
-           <sizepolicy>
-            <hsizetype>7</hsizetype>
-            <vsizetype>7</vsizetype>
+        <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
             <horstretch>0</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
@@ -109,12 +105,21 @@
       </item>
       <item>
        <layout class="QHBoxLayout" >
-        <property name="margin" >
-         <number>0</number>
-        </property>
         <property name="spacing" >
          <number>6</number>
         </property>
+     <property name="leftMargin" >
+      <number>0</number>
+     </property>
+     <property name="topMargin" >
+      <number>0</number>
+     </property>
+     <property name="rightMargin" >
+      <number>0</number>
+     </property>
+     <property name="bottomMargin" >
+      <number>0</number>
+     </property>
         <item>
          <widget class="QLabel" name="label_3_2" >
           <property name="minimumSize" >
@@ -131,9 +136,7 @@
         <item>
          <widget class="QLineEdit" name="newProjectEngineer" >
           <property name="sizePolicy" >
-           <sizepolicy>
-            <hsizetype>7</hsizetype>
-            <vsizetype>5</vsizetype>
+        <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
             <horstretch>2</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
@@ -143,19 +146,121 @@
        </layout>
       </item>
       <item>
-       <layout class="QHBoxLayout" >
-        <property name="margin" >
+    <widget class="QTabWidget" name="tabWidget" >
+     <property name="currentIndex" >
          <number>0</number>
         </property>
+     <widget class="QWidget" name="tab_2" >
+      <attribute name="title" >
+       <string>Import Audio Files</string>
+      </attribute>
+      <layout class="QVBoxLayout" >
+       <item>
+        <layout class="QHBoxLayout" >
+         <item>
+          <widget class="QPushButton" name="pushButtonAddFiles" >
+           <property name="text" >
+            <string>Add Files</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QPushButton" name="pushButtonRemoveFiles" >
+           <property name="text" >
+            <string>Remove Files</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer>
+           <property name="orientation" >
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeHint" >
+            <size>
+             <width>40</width>
+             <height>20</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+       <item>
+        <widget class="QTreeWidget" name="treeWidgetFiles" >
+         <property name="selectionMode" >
+          <enum>QAbstractItemView::ExtendedSelection</enum>
+         </property>
+         <property name="rootIsDecorated" >
+          <bool>false</bool>
+         </property>
+         <property name="columnCount" >
+          <number>2</number>
+         </property>
+         <column>
+          <property name="text" >
+           <string>Track Name</string>
+          </property>
+         </column>
+         <column>
+          <property name="text" >
+           <string>File</string>
+          </property>
+         </column>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="radioButtonLeave" >
+         <property name="text" >
+          <string>load files from original location</string>
+         </property>
+         <property name="checked" >
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="radioButtonCopy" >
+         <property name="text" >
+          <string>copy files to project directory</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="radioButtonMove" >
+         <property name="text" >
+          <string>move files to project directory</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="tab" >
+      <attribute name="title" >
+       <string>Empty Project</string>
+      </attribute>
+      <layout class="QVBoxLayout" >
+       <item>
+        <layout class="QHBoxLayout" >
         <property name="spacing" >
          <number>6</number>
         </property>
+         <property name="leftMargin" >
+          <number>0</number>
+         </property>
+         <property name="topMargin" >
+          <number>0</number>
+         </property>
+         <property name="rightMargin" >
+          <number>0</number>
+         </property>
+         <property name="bottomMargin" >
+          <number>0</number>
+         </property>
         <item>
          <widget class="QLabel" name="label_2_2_2" >
           <property name="sizePolicy" >
-           <sizepolicy>
-            <hsizetype>5</hsizetype>
-            <vsizetype>5</vsizetype>
+            <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
             <horstretch>2</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
@@ -168,9 +273,7 @@
         <item>
          <widget class="QSpinBox" name="sheetCountSpinBox" >
           <property name="sizePolicy" >
-           <sizepolicy>
-            <hsizetype>1</hsizetype>
-            <vsizetype>0</vsizetype>
+            <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
             <horstretch>1</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
@@ -193,18 +296,25 @@
       </item>
       <item>
        <layout class="QHBoxLayout" >
-        <property name="margin" >
-         <number>0</number>
-        </property>
         <property name="spacing" >
          <number>6</number>
         </property>
+         <property name="leftMargin" >
+          <number>0</number>
+         </property>
+         <property name="topMargin" >
+          <number>0</number>
+         </property>
+         <property name="rightMargin" >
+          <number>0</number>
+         </property>
+         <property name="bottomMargin" >
+          <number>0</number>
+         </property>
         <item>
          <widget class="QLabel" name="label_2" >
           <property name="sizePolicy" >
-           <sizepolicy>
-            <hsizetype>5</hsizetype>
-            <vsizetype>5</vsizetype>
+            <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
             <horstretch>2</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
@@ -217,9 +327,7 @@
         <item>
          <widget class="QSpinBox" name="trackCountSpinBox" >
           <property name="sizePolicy" >
-           <sizepolicy>
-            <hsizetype>1</hsizetype>
-            <vsizetype>0</vsizetype>
+            <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
             <horstretch>1</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
@@ -230,12 +338,21 @@
       </item>
       <item>
        <layout class="QHBoxLayout" >
-        <property name="margin" >
-         <number>0</number>
-        </property>
         <property name="spacing" >
          <number>6</number>
         </property>
+         <property name="leftMargin" >
+          <number>0</number>
+         </property>
+         <property name="topMargin" >
+          <number>0</number>
+         </property>
+         <property name="rightMargin" >
+          <number>0</number>
+         </property>
+         <property name="bottomMargin" >
+          <number>0</number>
+         </property>
         <item>
          <widget class="QCheckBox" name="useTemplateCheckBox" >
           <property name="text" >
@@ -246,9 +363,7 @@
         <item>
          <widget class="QComboBox" name="templateComboBox" >
           <property name="sizePolicy" >
-           <sizepolicy>
-            <hsizetype>5</hsizetype>
-            <vsizetype>0</vsizetype>
+            <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
             <horstretch>2</horstretch>
             <verstretch>0</verstretch>
            </sizepolicy>
@@ -257,8 +372,22 @@
         </item>
        </layout>
       </item>
+       <item>
+        <spacer>
+         <property name="orientation" >
+          <enum>Qt::Vertical</enum>
+         </property>
+         <property name="sizeHint" >
+          <size>
+           <width>20</width>
+           <height>40</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
      </layout>
     </widget>
+    </widget>
    </item>
    <item>
     <widget class="QDialogButtonBox" name="buttonBox" >
@@ -281,8 +410,8 @@
    <slot>accept()</slot>
    <hints>
     <hint type="sourcelabel" >
-     <x>248</x>
-     <y>254</y>
+     <x>252</x>
+     <y>438</y>
     </hint>
     <hint type="destinationlabel" >
      <x>157</x>
@@ -297,8 +426,8 @@
    <slot>reject()</slot>
    <hints>
     <hint type="sourcelabel" >
-     <x>316</x>
-     <y>260</y>
+     <x>268</x>
+     <y>438</y>
     </hint>
     <hint type="destinationlabel" >
      <x>286</x>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]