summaryrefslogtreecommitdiff
path: root/muse_qt4_evolution/muse/liste/listedit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse_qt4_evolution/muse/liste/listedit.cpp')
-rw-r--r--muse_qt4_evolution/muse/liste/listedit.cpp298
1 files changed, 0 insertions, 298 deletions
diff --git a/muse_qt4_evolution/muse/liste/listedit.cpp b/muse_qt4_evolution/muse/liste/listedit.cpp
deleted file mode 100644
index 1f6138a8..00000000
--- a/muse_qt4_evolution/muse/liste/listedit.cpp
+++ /dev/null
@@ -1,298 +0,0 @@
-//=============================================================================
-// 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 "listedit.h"
-#include "ctrllistedit.h"
-#include "partlistedit.h"
-#include "tracklistedit.h"
-#include "song.h"
-#include "part.h"
-#include "ctrl.h"
-
-//---------------------------------------------------------
-// operator==
-//---------------------------------------------------------
-
-bool ListType::operator==(const ListType& t) const
- {
- return id == t.id && track == t.track
- && part == t.part && (ctrl ? ctrl->id() == t.ctrl->id() : true);
- }
-
-//---------------------------------------------------------
-// ListEdit
-//---------------------------------------------------------
-
-ListEdit::ListEdit(QWidget*)
- : TopWin()
- {
- setWindowTitle(tr("MusE: List Edit"));
-
- QSplitter* split = new QSplitter;
- split->setOpaqueResize(true);
- setCentralWidget(split);
-
- list = new QTreeWidget;
- list->setColumnCount(1);
- list->setSelectionMode(QAbstractItemView::SingleSelection);
- list->setRootIsDecorated(true);
- list->setColumnCount(1);
- list->setHeaderLabels(QStringList("Element"));
- list->setSortingEnabled(false);
- list->setUniformRowHeights(true);
- split->addWidget(list);
-
- 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*)));
- connect(list, SIGNAL(itemExpanded(QTreeWidgetItem*)), SLOT(itemExpanded(QTreeWidgetItem*)));
- connect(list, SIGNAL(itemCollapsed(QTreeWidgetItem*)), SLOT(itemExpanded(QTreeWidgetItem*)));
- connect(song, SIGNAL(songChanged(int)), SLOT(songChanged(int)));
- list->resizeColumnToContents(0);
- resize(900, 400);
- }
-
-//---------------------------------------------------------
-// itemExpanded
-//---------------------------------------------------------
-
-void ListEdit::itemExpanded(QTreeWidgetItem*)
- {
- list->resizeColumnToContents(0);
- }
-
-//---------------------------------------------------------
-// itemChanged
-//---------------------------------------------------------
-
-void ListEdit::itemChanged(QTreeWidgetItem* i, QTreeWidgetItem*)
- {
- if (i == 0)
- return;
- ListWidget* ew = ctrlPanel;
- lt = i->data(0, Qt::UserRole).value<ListType>();
- switch(lt.id) {
- case LIST_TRACK:
- ew = trackPanel;
- break;
- case LIST_PART:
- ew = partPanel;
- break;
- case LIST_CTRL:
- ew = ctrlPanel;
- break;
- default:
- return;
- }
- ew->setup(lt);
- stack->setCurrentWidget(ew);
- }
-
-//---------------------------------------------------------
-// buildList
-//---------------------------------------------------------
-
-void ListEdit::buildList()
- {
- list->clear();
- TrackList* tl = song->tracks();
- int idx = 0;
- ListType lt;
-
- for (iTrack i = tl->begin(); i != tl->end(); ++i,++idx) {
- QTreeWidgetItem* item = new QTreeWidgetItem;
- Track* t = *i;
- item->setText(0, t->name());
- 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.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.ctrl = ci->second;
- ccitem->setData(0, Qt::UserRole, QVariant::fromValue(lt));
- }
- }
- }
- }
-
-//---------------------------------------------------------
-// songChanged
-//---------------------------------------------------------
-
-void ListEdit::songChanged(int flags)
- {
- if (flags & (SC_TRACK_INSERTED | SC_TRACK_REMOVED | SC_PART_INSERTED
- | SC_PART_REMOVED)) {
- buildList();
- selectItem();
- }
- }
-
-//---------------------------------------------------------
-// findItem
-//---------------------------------------------------------
-
-QTreeWidgetItem* ListEdit::findItem(const ListType& lt, QTreeWidgetItem* item)
- {
- if (item->flags() & Qt::ItemIsSelectable) {
- if (lt == item->data(0, Qt::UserRole).value<ListType>())
- return item;
- }
- for (int n = 0; n < item->childCount(); ++n) {
- QTreeWidgetItem* i = findItem(lt, item->child(n));
- if (i)
- return i;
- }
- return 0;
- }
-
-//---------------------------------------------------------
-// selectItem
-//---------------------------------------------------------
-
-void ListEdit::selectItem(const AL::Pos& p, Track* track, Part* part, Ctrl* ctrl)
- {
- _pos = p;
- stack->setCurrentWidget(ctrlPanel);
- if (ctrl)
- lt.id = LIST_CTRL;
- else if (part)
- lt.id = LIST_PART;
- else if (track)
- lt.id = LIST_TRACK;
- else
- return;
- lt.track = track;
- lt.part = part;
- lt.ctrl = ctrl;
- selectItem();
- }
-
-void ListEdit::selectItem()
- {
- stack->setCurrentWidget(ctrlPanel);
- buildList();
- for (int i = 0;; ++i) {
- QTreeWidgetItem* item = list->topLevelItem(i);
- if (item == 0) {
- printf("MusE::ListEdit: Element not found\n");
- break;
- }
- item = findItem(lt, item);
- if (item) {
- list->setItemExpanded(item, true);
- list->setCurrentItem(item);
- list->scrollToItem(item);
- break;
- }
- }
- }
-
-//---------------------------------------------------------
-// readStatus
-//---------------------------------------------------------
-
-void ListEdit::read(QDomNode node)
- {
- QString trackName;
- Track* track = 0;
- Part* part = 0;
- Ctrl* ctrl = 0;
-
- for (node = node.firstChild(); !node.isNull(); node = node.nextSibling()) {
- QDomElement e = node.toElement();
- QString tag(e.tagName());
- if (tag == "Track") {
- track = song->findTrack(e.text());
- if (track == 0) {
- printf("MusE::ListEdit::read: track not found\n");
- }
- }
- else if (tag == "Pos")
- _pos.read(node);
- else if (tag == "Ctrl") {
- int ctrlId = e.text().toInt();
- ctrl = track->getController(ctrlId);
- if (ctrl == 0) {
- printf("MusE::ListEdit::read: controller not found: track %p\n", track);
- printf("MusE::ListEdit::read: controller %d not found\n", ctrlId);
- return;
- }
- }
- else
- AL::readProperties(this, node);
- }
- selectItem(_pos, track, part, ctrl);
- }
-
-//---------------------------------------------------------
-// write
-//---------------------------------------------------------
-
-void ListEdit::write(Xml& xml) const
- {
- xml.stag(metaObject()->className());
- xml.writeProperties(this);
-
- xml.tag("Track", lt.track->name());
- if (lt.ctrl) {
- xml.tag("Ctrl", lt.ctrl->id());
- _pos.write(xml, "Pos");
- }
- xml.etag(metaObject()->className());
- }
-