summaryrefslogtreecommitdiff
path: root/muse2/muse/widgets/header.cpp
diff options
context:
space:
mode:
authorOrcan Ogetbil <oget.fedora@gmail.com>2010-11-29 18:06:38 +0000
committerOrcan Ogetbil <oget.fedora@gmail.com>2010-11-29 18:06:38 +0000
commit0d917bc21df21e148f5e8650e21b88a77c4168ba (patch)
tree122e8010baa199138ab741132b1c7a3def99aca1 /muse2/muse/widgets/header.cpp
parentbe99c1e70a0956995f20b5d0cc2c46b123973ea3 (diff)
Added new class HeaderNew, ported drumedit.
Diffstat (limited to 'muse2/muse/widgets/header.cpp')
-rw-r--r--muse2/muse/widgets/header.cpp105
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);
+ }
+