diff options
| -rw-r--r-- | muse/TODO | 2 | ||||
| -rw-r--r-- | muse/muse/ctrl/definemidictrl.ui | 94 | ||||
| -rw-r--r-- | muse/muse/driver/jackaudio.h | 5 | ||||
| -rw-r--r-- | muse/muse/liste/CMakeLists.txt | 12 | ||||
| -rw-r--r-- | muse/muse/liste/listedit.cpp | 36 | ||||
| -rw-r--r-- | muse/muse/liste/listedit.h | 8 | ||||
| -rw-r--r-- | muse/muse/liste/partlistedit.cpp | 67 | ||||
| -rw-r--r-- | muse/muse/liste/partlistedit.h | 50 | ||||
| -rw-r--r-- | muse/muse/liste/partlistedit.ui | 141 | ||||
| -rw-r--r-- | muse/muse/liste/tracklistedit.cpp | 65 | ||||
| -rw-r--r-- | muse/muse/liste/tracklistedit.h | 50 | ||||
| -rw-r--r-- | muse/muse/liste/tracklistedit.ui | 146 | 
12 files changed, 608 insertions, 68 deletions
| @@ -23,8 +23,6 @@ BUGS  	- make export midi work  FEATURES -	- wave editor is completely broken -  	- missing time signature ruler in master editor        - If events recorded outside part ask after recording what to do: diff --git a/muse/muse/ctrl/definemidictrl.ui b/muse/muse/ctrl/definemidictrl.ui index 409ebfd6..a66e55cb 100644 --- a/muse/muse/ctrl/definemidictrl.ui +++ b/muse/muse/ctrl/definemidictrl.ui @@ -27,9 +27,46 @@       <property name="spacing" >        <number>6</number>       </property> +     <item rowspan="2" row="0" column="0" > +      <widget class="QLabel" name="label_13" > +       <property name="font" > +        <font> +         <pointsize>24</pointsize> +         <weight>75</weight> +         <bold>true</bold> +        </font> +       </property> +       <property name="frameShadow" > +        <enum>QFrame::Raised</enum> +       </property> +       <property name="lineWidth" > +        <number>5</number> +       </property> +       <property name="text" > +        <string><html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Arial'; font-size:24pt; font-weight:600; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:400;">   </span><span style=" font-weight:400;">CTRL   </span></p></body></html></string> +       </property> +      </widget> +     </item> +     <item row="0" column="1" > +      <widget class="QLabel" name="label_2" > +       <property name="text" > +        <string>Controller Name:</string> +       </property> +      </widget> +     </item>       <item row="0" column="2" >        <widget class="QLineEdit" name="controllerName" />       </item> +     <item row="1" column="1" > +      <widget class="QLabel" name="label" > +       <property name="text" > +        <string>Controller Type:</string> +       </property> +      </widget> +     </item>       <item row="1" column="2" >        <widget class="QComboBox" name="controllerType" >         <item> @@ -64,46 +101,19 @@         </item>        </widget>       </item> -     <item row="0" column="1" > -      <widget class="QLabel" name="label_2" > -       <property name="text" > -        <string>Controller Name:</string> -       </property> -      </widget> -     </item> -     <item row="1" column="1" > -      <widget class="QLabel" name="label" > -       <property name="text" > -        <string>Controller Type:</string> -       </property> -      </widget> -     </item> -     <item rowspan="2" row="0" column="0" > -      <widget class="QLabel" name="label_13" > -       <property name="font" > -        <font> -         <pointsize>24</pointsize> -         <weight>75</weight> -         <bold>true</bold> -        </font> -       </property> -       <property name="frameShadow" > -        <enum>QFrame::Raised</enum> -       </property> -       <property name="lineWidth" > -        <number>5</number> -       </property> -       <property name="text" > -        <string><html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Arial'; font-size:24pt; font-weight:600; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:400;">   </span><span style=" font-weight:400;">CTRL   </span></p></body></html></string> -       </property> -      </widget> -     </item>      </layout>     </item>     <item> +    <widget class="QLabel" name="label_14" > +     <property name="text" > +      <string>Comment:</string> +     </property> +    </widget> +   </item> +   <item> +    <widget class="QTextEdit" name="controllerComment" /> +   </item> +   <item>      <layout class="QHBoxLayout" >       <property name="margin" >        <number>0</number> @@ -235,16 +245,6 @@ p, li { white-space: pre-wrap; }       </property>      </widget>     </item> -   <item> -    <widget class="QTextEdit" name="controllerComment" /> -   </item> -   <item> -    <widget class="QLabel" name="label_14" > -     <property name="text" > -      <string>Comment:</string> -     </property> -    </widget> -   </item>    </layout>   </widget>   <resources/> diff --git a/muse/muse/driver/jackaudio.h b/muse/muse/driver/jackaudio.h index 98d8e493..c6835c0e 100644 --- a/muse/muse/driver/jackaudio.h +++ b/muse/muse/driver/jackaudio.h @@ -77,13 +77,10 @@ class JackAudio : public AudioDriver {        void graphChanged();        virtual void putEvent(Port, const MidiEvent&);        virtual void startMidiCycle(Port); -//      virtual unsigned int getCurFrame() { return pos.frame; } -      virtual unsigned framePos() const {  +      virtual unsigned framePos() const {              return pos.frame + jack_frames_since_cycle_start(_client);              } -//      unsigned lastFrameTime()        { return jack_last_frame_time(_client); } -//      unsigned framesSinceCyleStart() { return jack_frames_since_cycle_start(_client); }        virtual unsigned frameTime() const      { return jack_frame_time(_client); }        }; diff --git a/muse/muse/liste/CMakeLists.txt b/muse/muse/liste/CMakeLists.txt index a8e5187c..433713b8 100644 --- a/muse/muse/liste/CMakeLists.txt +++ b/muse/muse/liste/CMakeLists.txt @@ -18,18 +18,24 @@  #  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  #============================================================================= -QT4_WRAP_CPP ( liste_mocs  +QT4_WRAP_CPP ( liste_mocs        listedit.h        ctrllistedit.h +      tracklistedit.h +      partlistedit.h        ) -QT4_WRAP_UI ( liste_ui_headers  +QT4_WRAP_UI ( liste_ui_headers        ctrllistedit.ui +      partlistedit.ui +      tracklistedit.ui        ) -add_library ( liste STATIC  +add_library ( liste STATIC        listedit.cpp listedit.h        ctrllistedit.cpp ctrllistedit.h +      partlistedit.cpp partlistedit.h +      tracklistedit.cpp tracklistedit.h        ${liste_mocs}        ${liste_ui_headers}        ) diff --git a/muse/muse/liste/listedit.cpp b/muse/muse/liste/listedit.cpp index 02dfe5d2..74bd2725 100644 --- a/muse/muse/liste/listedit.cpp +++ b/muse/muse/liste/listedit.cpp @@ -20,6 +20,8 @@  #include "listedit.h"  #include "ctrllistedit.h" +#include "partlistedit.h" +#include "tracklistedit.h"  #include "song.h"  #include "part.h"  #include "ctrl.h" @@ -30,7 +32,7 @@  bool ListType::operator==(const ListType& t) const        { -      return id == t.id && track == t.track  +      return id == t.id && track == t.track           && part == t.part && ctrl->id() == t.ctrl->id();        } @@ -59,9 +61,13 @@ ListEdit::ListEdit(QWidget*)        stack = new QStackedWidget;        split->addWidget(stack); -       +        ctrlPanel = new CtrlListEditor(this);        stack->addWidget(ctrlPanel); +      partPanel = new PartListEditor(this); +      stack->addWidget(partPanel); +      trackPanel = new TrackListEditor(this); +      stack->addWidget(trackPanel);        connect(list, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),           SLOT(itemChanged(QTreeWidgetItem*,QTreeWidgetItem*))); @@ -93,12 +99,16 @@ void ListEdit::itemChanged(QTreeWidgetItem* i, QTreeWidgetItem*)        lt = i->data(0, Qt::UserRole).value<ListType>();        switch(lt.id) {              case LIST_TRACK: -                  return; +                  ew = trackPanel; +                  break;              case LIST_PART: -                  return; +                  ew = partPanel; +                  break;              case LIST_CTRL:                    ew = ctrlPanel;                    break; +            default: +                  return;              }        ew->setup(lt);        stack->setCurrentWidget(ew); @@ -116,36 +126,42 @@ void ListEdit::buildList()        ListType lt;        for (iTrack i = tl->begin(); i != tl->end(); ++i,++idx) { -            Track* t = *i; -            lt.track = t;              QTreeWidgetItem* item = new QTreeWidgetItem; +            Track* t = *i;              item->setText(0, t->name()); -            lt.id = LIST_TRACK; +            lt.id    = LIST_TRACK; +            lt.track = t;              item->setData(0, Qt::UserRole, QVariant::fromValue(lt));              list->insertTopLevelItem(idx, item); +              PartList* pl = t->parts();              if (!pl->empty()) {                    QTreeWidgetItem* pitem = new QTreeWidgetItem(item);                    pitem->setFlags(pitem->flags() & ~Qt::ItemIsSelectable);                    pitem->setText(0, tr("Parts")); +                  lt.id = LIST_NONE; +                  pitem->setData(0, Qt::UserRole, QVariant::fromValue(lt));                    for (iPart pi = pl->begin(); pi != pl->end(); ++pi) { -                        lt.id = LIST_PART; +                        lt.id   = LIST_PART;                          lt.part = pi->second;                          QTreeWidgetItem* ppitem = new QTreeWidgetItem(pitem);                          ppitem->setData(0, Qt::UserRole, QVariant::fromValue(lt));                          ppitem->setText(0, pi->second->name());                          }                    } +              CtrlList* cl = t->controller();              lt.part = 0;              if (!cl->empty()) {                    QTreeWidgetItem* citem = new QTreeWidgetItem(item);                    citem->setText(0, tr("Controller"));                    citem->setFlags(citem->flags() & ~Qt::ItemIsSelectable); +                  lt.id = LIST_NONE; +                  citem->setData(0, Qt::UserRole, QVariant::fromValue(lt));                    for (iCtrl ci = cl->begin(); ci != cl->end(); ++ci) {                          QTreeWidgetItem* ccitem = new QTreeWidgetItem(citem);                          ccitem->setText(0, ci->second->name()); -                        lt.id = LIST_CTRL; +                        lt.id   = LIST_CTRL;                          lt.ctrl = ci->second;                          ccitem->setData(0, Qt::UserRole, QVariant::fromValue(lt));                          } @@ -163,7 +179,7 @@ void ListEdit::songChanged(int flags)           | SC_PART_REMOVED)) {              buildList();              selectItem(); -            }       +            }        }  //--------------------------------------------------------- diff --git a/muse/muse/liste/listedit.h b/muse/muse/liste/listedit.h index 66179cd0..b49e61c3 100644 --- a/muse/muse/liste/listedit.h +++ b/muse/muse/liste/listedit.h @@ -28,19 +28,21 @@ class Track;  class Part;  class Ctrl;  class CtrlListEditor; +class PartListEditor; +class TrackListEditor;  //---------------------------------------------------------  //   ListType  //--------------------------------------------------------- -enum { LIST_TRACK, LIST_PART, LIST_CTRL }; +enum { LIST_NONE, LIST_TRACK, LIST_PART, LIST_CTRL };  struct ListType {        int id;        Track* track;        Part* part;        Ctrl* ctrl; -       +        bool operator==(const ListType& t) const;        }; @@ -72,6 +74,8 @@ class ListEdit : public TopWin {        QStackedWidget* stack;        QTreeWidget* list;        CtrlListEditor* ctrlPanel; +      PartListEditor* partPanel; +      TrackListEditor* trackPanel;        void buildList();        QTreeWidgetItem* findItem(const ListType& lt, QTreeWidgetItem* item); diff --git a/muse/muse/liste/partlistedit.cpp b/muse/muse/liste/partlistedit.cpp new file mode 100644 index 00000000..ca325bf5 --- /dev/null +++ b/muse/muse/liste/partlistedit.cpp @@ -0,0 +1,67 @@ +//============================================================================= +//  MusE +//  Linux Music Editor +//  $Id:$ +// +//  Copyright (C) 2002-2006 by Werner Schweer and others +// +//  This program is free software; you can redistribute it and/or modify +//  it under the terms of the GNU General Public License version 2. +// +//  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., 675 Mass Ave, Cambridge, MA 02139, USA. +//============================================================================= + +#include "partlistedit.h" +#include "track.h" +#include "song.h" +#include "al/pos.h" +#include "awl/posedit.h" +#include "part.h" + +//--------------------------------------------------------- +//   PartListEditor +//--------------------------------------------------------- + +PartListEditor::PartListEditor(ListEdit* e, QWidget* parent) +   : ListWidget(parent) +      { +      listEdit = e; +      QWidget* cew = new QWidget; +      le.setupUi(cew); +      QVBoxLayout* layout = new QVBoxLayout; +      layout->addWidget(cew); +      setLayout(layout); + +      QFontMetrics fm(le.eventList->font()); +      int zW = fm.width("0"); +      le.eventList->setColumnWidth(TICK_COL, zW * 8); +      le.eventList->setColumnWidth(TIME_COL, zW * 14); + +      part = 0; +      } + +//--------------------------------------------------------- +//   setup +//--------------------------------------------------------- + +void PartListEditor::setup(const ListType& lt) +      { +      part = lt.part; +      le.partName->setText(part->name()); +      updateList(); +      } + +//--------------------------------------------------------- +//   updateList +//--------------------------------------------------------- + +void PartListEditor::updateList() +      { +      } diff --git a/muse/muse/liste/partlistedit.h b/muse/muse/liste/partlistedit.h new file mode 100644 index 00000000..fa3d8f5c --- /dev/null +++ b/muse/muse/liste/partlistedit.h @@ -0,0 +1,50 @@ +//============================================================================= +//  MusE +//  Linux Music Editor +//  $Id:$ +// +//  Copyright (C) 2002-2006 by Werner Schweer and others +// +//  This program is free software; you can redistribute it and/or modify +//  it under the terms of the GNU General Public License version 2. +// +//  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., 675 Mass Ave, Cambridge, MA 02139, USA. +//============================================================================= + +#ifndef __PARTLISTEDIT_H__ +#define __PARTLISTEDIT_H__ + +#include "al/pos.h" +#include "listedit.h" +#include "ui_partlistedit.h" + +//--------------------------------------------------------- +//   PartListEditor +//--------------------------------------------------------- + +class PartListEditor : public ListWidget { +      Q_OBJECT + +      ListEdit* listEdit; +      Ui::PartListEdit le; +      Part* part; + +      void updateList(); + +   private slots: + +   public: +      PartListEditor(ListEdit*, QWidget* parent = 0); +      virtual void setup(const ListType&); +      enum { TICK_COL, TIME_COL }; +      }; + +#endif + diff --git a/muse/muse/liste/partlistedit.ui b/muse/muse/liste/partlistedit.ui new file mode 100644 index 00000000..a31f6c9a --- /dev/null +++ b/muse/muse/liste/partlistedit.ui @@ -0,0 +1,141 @@ +<ui version="4.0" > + <class>PartListEdit</class> + <widget class="QWidget" name="PartListEdit" > +  <property name="geometry" > +   <rect> +    <x>0</x> +    <y>0</y> +    <width>400</width> +    <height>341</height> +   </rect> +  </property> +  <property name="windowTitle" > +   <string>Form</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" > +       <property name="sizePolicy" > +        <sizepolicy> +         <hsizetype>5</hsizetype> +         <vsizetype>0</vsizetype> +         <horstretch>0</horstretch> +         <verstretch>0</verstretch> +        </sizepolicy> +       </property> +       <property name="font" > +        <font> +         <weight>75</weight> +         <bold>true</bold> +        </font> +       </property> +       <property name="text" > +        <string><html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:400;">Part:</span></p></body></html></string> +       </property> +      </widget> +     </item> +     <item> +      <widget class="QLineEdit" name="partName" /> +     </item> +    </layout> +   </item> +   <item> +    <widget class="QLabel" name="label_2" > +     <property name="text" > +      <string>Eventlist:</string> +     </property> +    </widget> +   </item> +   <item> +    <widget class="QTreeWidget" name="eventList" > +     <property name="alternatingRowColors" > +      <bool>true</bool> +     </property> +     <property name="indentation" > +      <number>0</number> +     </property> +     <property name="rootIsDecorated" > +      <bool>false</bool> +     </property> +     <property name="uniformRowHeights" > +      <bool>true</bool> +     </property> +     <property name="itemsExpandable" > +      <bool>false</bool> +     </property> +     <column> +      <property name="text" > +       <string>Tick</string> +      </property> +     </column> +     <column> +      <property name="text" > +       <string>Time</string> +      </property> +     </column> +     <column> +      <property name="text" > +       <string>Value</string> +      </property> +     </column> +    </widget> +   </item> +   <item> +    <layout class="QHBoxLayout" > +     <property name="margin" > +      <number>0</number> +     </property> +     <property name="spacing" > +      <number>6</number> +     </property> +     <item> +      <widget class="QToolButton" name="deleteButton" > +       <property name="text" > +        <string>Delete</string> +       </property> +      </widget> +     </item> +     <item> +      <widget class="QToolButton" name="insertButton" > +       <property name="text" > +        <string>Insert</string> +       </property> +      </widget> +     </item> +     <item> +      <spacer> +       <property name="orientation" > +        <enum>Qt::Horizontal</enum> +       </property> +       <property name="sizeHint" > +        <size> +         <width>231</width> +         <height>29</height> +        </size> +       </property> +      </spacer> +     </item> +    </layout> +   </item> +  </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/muse/muse/liste/tracklistedit.cpp b/muse/muse/liste/tracklistedit.cpp new file mode 100644 index 00000000..24fc4722 --- /dev/null +++ b/muse/muse/liste/tracklistedit.cpp @@ -0,0 +1,65 @@ +//============================================================================= +//  MusE +//  Linux Music Editor +//  $Id:$ +// +//  Copyright (C) 2002-2006 by Werner Schweer and others +// +//  This program is free software; you can redistribute it and/or modify +//  it under the terms of the GNU General Public License version 2. +// +//  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., 675 Mass Ave, Cambridge, MA 02139, USA. +//============================================================================= + +#include "tracklistedit.h" +#include "track.h" +#include "song.h" +#include "al/pos.h" +#include "awl/posedit.h" + +//--------------------------------------------------------- +//   TrackListEditor +//--------------------------------------------------------- + +TrackListEditor::TrackListEditor(ListEdit* e, QWidget* parent) +   : ListWidget(parent) +      { +      listEdit = e; +      QWidget* cew = new QWidget; +      le.setupUi(cew); +      QVBoxLayout* layout = new QVBoxLayout; +      layout->addWidget(cew); +      setLayout(layout); + +      QFontMetrics fm(le.partList->font()); +      int zW = fm.width("0"); +      le.partList->setColumnWidth(TICK_COL, zW * 8); +      le.partList->setColumnWidth(TIME_COL, zW * 14); +      track = 0; +      } + +//--------------------------------------------------------- +//   setup +//--------------------------------------------------------- + +void TrackListEditor::setup(const ListType& lt) +      { +      track = lt.track; +      le.trackName->setText(track->name()); +      updateList(); +      } + +//--------------------------------------------------------- +//   updateList +//--------------------------------------------------------- + +void TrackListEditor::updateList() +      { +      } diff --git a/muse/muse/liste/tracklistedit.h b/muse/muse/liste/tracklistedit.h new file mode 100644 index 00000000..7d4b57f7 --- /dev/null +++ b/muse/muse/liste/tracklistedit.h @@ -0,0 +1,50 @@ +//============================================================================= +//  MusE +//  Linux Music Editor +//  $Id:$ +// +//  Copyright (C) 2002-2006 by Werner Schweer and others +// +//  This program is free software; you can redistribute it and/or modify +//  it under the terms of the GNU General Public License version 2. +// +//  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., 675 Mass Ave, Cambridge, MA 02139, USA. +//============================================================================= + +#ifndef __TRACKLISTEDIT_H__ +#define __TRACKLISTEDIT_H__ + +#include "al/pos.h" +#include "listedit.h" +#include "ui_tracklistedit.h" + +//--------------------------------------------------------- +//   TrackListEditor +//--------------------------------------------------------- + +class TrackListEditor : public ListWidget { +      Q_OBJECT + +      ListEdit* listEdit; +      Ui::TrackListEdit le; +      Track* track; + +      void updateList(); + +   private slots: + +   public: +      TrackListEditor(ListEdit*, QWidget* parent = 0); +      virtual void setup(const ListType&); +      enum { TICK_COL, TIME_COL }; +      }; + +#endif + diff --git a/muse/muse/liste/tracklistedit.ui b/muse/muse/liste/tracklistedit.ui new file mode 100644 index 00000000..dfddf1c7 --- /dev/null +++ b/muse/muse/liste/tracklistedit.ui @@ -0,0 +1,146 @@ +<ui version="4.0" > + <class>TrackListEdit</class> + <widget class="QWidget" name="TrackListEdit" > +  <property name="geometry" > +   <rect> +    <x>0</x> +    <y>0</y> +    <width>400</width> +    <height>341</height> +   </rect> +  </property> +  <property name="windowTitle" > +   <string>Form</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" > +       <property name="sizePolicy" > +        <sizepolicy> +         <hsizetype>5</hsizetype> +         <vsizetype>0</vsizetype> +         <horstretch>0</horstretch> +         <verstretch>0</verstretch> +        </sizepolicy> +       </property> +       <property name="font" > +        <font> +         <weight>75</weight> +         <bold>true</bold> +        </font> +       </property> +       <property name="text" > +        <string><html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:400;">Track:</span></p></body></html></string> +       </property> +      </widget> +     </item> +     <item> +      <widget class="QLineEdit" name="trackName" /> +     </item> +    </layout> +   </item> +   <item> +    <widget class="QLabel" name="label_2" > +     <property name="text" > +      <string>Partlist:</string> +     </property> +    </widget> +   </item> +   <item> +    <widget class="QTreeWidget" name="partList" > +     <property name="alternatingRowColors" > +      <bool>true</bool> +     </property> +     <property name="indentation" > +      <number>0</number> +     </property> +     <property name="rootIsDecorated" > +      <bool>false</bool> +     </property> +     <property name="uniformRowHeights" > +      <bool>true</bool> +     </property> +     <property name="itemsExpandable" > +      <bool>false</bool> +     </property> +     <column> +      <property name="text" > +       <string>Tick</string> +      </property> +     </column> +     <column> +      <property name="text" > +       <string>Time</string> +      </property> +     </column> +     <column> +      <property name="text" > +       <string>Len</string> +      </property> +     </column> +     <column> +      <property name="text" > +       <string>Name</string> +      </property> +     </column> +    </widget> +   </item> +   <item> +    <layout class="QHBoxLayout" > +     <property name="margin" > +      <number>0</number> +     </property> +     <property name="spacing" > +      <number>6</number> +     </property> +     <item> +      <widget class="QToolButton" name="deleteButton" > +       <property name="text" > +        <string>Delete</string> +       </property> +      </widget> +     </item> +     <item> +      <widget class="QToolButton" name="insertButton" > +       <property name="text" > +        <string>Insert</string> +       </property> +      </widget> +     </item> +     <item> +      <spacer> +       <property name="orientation" > +        <enum>Qt::Horizontal</enum> +       </property> +       <property name="sizeHint" > +        <size> +         <width>231</width> +         <height>29</height> +        </size> +       </property> +      </spacer> +     </item> +    </layout> +   </item> +  </layout> + </widget> + <resources/> + <connections/> +</ui> | 
