diff options
author | Orcan Ogetbil <oget.fedora@gmail.com> | 2010-11-29 18:06:38 +0000 |
---|---|---|
committer | Orcan Ogetbil <oget.fedora@gmail.com> | 2010-11-29 18:06:38 +0000 |
commit | 0d917bc21df21e148f5e8650e21b88a77c4168ba (patch) | |
tree | 122e8010baa199138ab741132b1c7a3def99aca1 /muse2/muse/widgets/header.cpp | |
parent | be99c1e70a0956995f20b5d0cc2c46b123973ea3 (diff) |
Added new class HeaderNew, ported drumedit.
Diffstat (limited to 'muse2/muse/widgets/header.cpp')
-rw-r--r-- | muse2/muse/widgets/header.cpp | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/muse2/muse/widgets/header.cpp b/muse2/muse/widgets/header.cpp index 6cbf9c3a..fe53b16e 100644 --- a/muse2/muse/widgets/header.cpp +++ b/muse2/muse/widgets/header.cpp @@ -9,6 +9,9 @@ #include "xml.h" #include <qstringlist.h> + +#include <QStandardItemModel> + //--------------------------------------------------------- // readStatus //--------------------------------------------------------- @@ -60,3 +63,105 @@ void Header::writeStatus(int level, Xml& xml) const xml.put("</%s>", Xml::xmlString(name()).latin1()); } + + +//--------------------------------------------------------- +// readStatus +//--------------------------------------------------------- + +void HeaderNew::readStatus(Xml& xml) + { + for (;;) { + Xml::Token token = xml.parse(); + const QString& tag = xml.s1(); + switch (token) { + case Xml::Error: + case Xml::End: + return; + case Xml::Text: + { + QStringList l = QStringList::split(QString(" "), tag); + int index = count(); + for (QStringList::Iterator it = l.begin(); it != l.end(); ++it) { + int section = (*it).toInt(); + moveSection(section, index); + --index; + } + } + break; + case Xml::TagStart: + xml.unknown("Header"); + break; + case Xml::TagEnd: + if (tag == name()) + return; + default: + break; + } + } + } + +//--------------------------------------------------------- +// writeStatus +//--------------------------------------------------------- + +void HeaderNew::writeStatus(int level, Xml& xml) const + { + //xml.nput(level, "<%s> ", name()); + xml.nput(level, "<%s> ", Xml::xmlString(name()).latin1()); + int n = count() - 1; + for (int i = n; i >= 0; --i) + xml.nput("%d ", visualIndex(i)); + //xml.put("</%s>", name()); + xml.put("</%s>", Xml::xmlString(name()).latin1()); + } + +//--------------------------------------------------------- +// writeStatus +//--------------------------------------------------------- + +HeaderNew::HeaderNew(QWidget* parent, const char* name) + : QHeaderView(Qt::Horizontal, parent) + { + setObjectName(name); + itemModel = new QStandardItemModel; + setModel(itemModel); + columncount = 0; + //setResizeMode(QHeaderView::ResizeToContents); + setDefaultSectionSize(30); + } + +//--------------------------------------------------------- +// addLabel +//--------------------------------------------------------- + +int HeaderNew::addLabel(const QString & text, int size ) + { + QStandardItem *sitem = new QStandardItem(text ); + itemModel->setHorizontalHeaderItem(columncount, sitem); + if (size > -1) + resizeSection(columncount, size); + + return columncount++; + } + +//--------------------------------------------------------- +// setToolTip +//--------------------------------------------------------- + +void HeaderNew::setToolTip(int col, const QString &text) + { + QStandardItem *item = itemModel->horizontalHeaderItem(col); + item->setToolTip(text); + } + +//--------------------------------------------------------- +// setWhatsThis +//--------------------------------------------------------- + +void HeaderNew::setWhatsThis(int col, const QString &text) + { + QStandardItem *item = itemModel->horizontalHeaderItem(col); + item->setWhatsThis(text); + } + |