summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Schweer <ws.seh.de>2006-12-12 16:58:27 +0000
committerWerner Schweer <ws.seh.de>2006-12-12 16:58:27 +0000
commit7a2ba8315883236d4c187e0280e027cb9376d961 (patch)
tree10639837acd6554e3c6d24a8cc7494203667bd25
parent28b49b703f20cba6ca43cac9bbfa795972cd71ee (diff)
update list editor
-rw-r--r--muse/TODO2
-rw-r--r--muse/muse/ctrl/definemidictrl.ui94
-rw-r--r--muse/muse/driver/jackaudio.h5
-rw-r--r--muse/muse/liste/CMakeLists.txt12
-rw-r--r--muse/muse/liste/listedit.cpp36
-rw-r--r--muse/muse/liste/listedit.h8
-rw-r--r--muse/muse/liste/partlistedit.cpp67
-rw-r--r--muse/muse/liste/partlistedit.h50
-rw-r--r--muse/muse/liste/partlistedit.ui141
-rw-r--r--muse/muse/liste/tracklistedit.cpp65
-rw-r--r--muse/muse/liste/tracklistedit.h50
-rw-r--r--muse/muse/liste/tracklistedit.ui146
12 files changed, 608 insertions, 68 deletions
diff --git a/muse/TODO b/muse/TODO
index 79f7235f..b1b49d08 100644
--- a/muse/TODO
+++ b/muse/TODO
@@ -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>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
+p, li { white-space: pre-wrap; }
+&lt;/style>&lt;/head>&lt;body style=" font-family:'Arial'; font-size:24pt; font-weight:600; font-style:normal; text-decoration:none;">
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-weight:400;"> &lt;/span>&lt;span style=" font-weight:400;">CTRL &lt;/span>&lt;/p>&lt;/body>&lt;/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>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
-p, li { white-space: pre-wrap; }
-&lt;/style>&lt;/head>&lt;body style=" font-family:'Arial'; font-size:24pt; font-weight:600; font-style:normal; text-decoration:none;">
-&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-weight:400;"> &lt;/span>&lt;span style=" font-weight:400;">CTRL &lt;/span>&lt;/p>&lt;/body>&lt;/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>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
+p, li { white-space: pre-wrap; }
+&lt;/style>&lt;/head>&lt;body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600; font-style:normal; text-decoration:none;">
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-weight:400;">Part:&lt;/span>&lt;/p>&lt;/body>&lt;/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>&lt;html>&lt;head>&lt;meta name="qrichtext" content="1" />&lt;style type="text/css">
+p, li { white-space: pre-wrap; }
+&lt;/style>&lt;/head>&lt;body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:600; font-style:normal; text-decoration:none;">
+&lt;p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;span style=" font-weight:400;">Track:&lt;/span>&lt;/p>&lt;/body>&lt;/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>