# # # patch "guitone/res/dialogs/databaseview.ui" # from [033d93acb666be19b972b3cf7f7b6caaadc050d0] # to [60721fa4ec6ecba2a4dba1823954291a24b5fc4e] # # patch "guitone/res/i18n/guitone_de.ts" # from [4ff395425b4aa13bd7f4dfa33ea2ef093dc34ec4] # to [baf70459803acb6ee6557e27a7c184c242bab19a] # # patch "guitone/src/util/TreeBuilder.cpp" # from [34967a320368a1959472126b6a4468cf9ca55ccb] # to [67c5514e55da9fecaacc0262bb82a63df1d0fc90] # # patch "guitone/src/util/TreeBuilder.h" # from [4950399cb259f614b5f4aea4b44b457bc0c4a549] # to [3cd7b826e492b8bd22cc4f7d8eed1ac239c09b97] # # patch "guitone/src/view/dialogs/DatabaseView.cpp" # from [85f97f2b60acc4db900c51a3b077413e2d6601f3] # to [4e20a37e9b2bb57976cbed6d2edac3f317b78f4d] # # patch "guitone/src/view/dialogs/DatabaseView.h" # from [4e85bfefeefe42181f42158aefdbed56141b422d] # to [d58a7df6429d44d7d8a0abc9fb3e250cd0ee4a21] # ============================================================ --- guitone/res/dialogs/databaseview.ui 033d93acb666be19b972b3cf7f7b6caaadc050d0 +++ guitone/res/dialogs/databaseview.ui 60721fa4ec6ecba2a4dba1823954291a24b5fc4e @@ -20,7 +20,7 @@ 6 - + Qt::NonModal @@ -45,11 +45,26 @@ 6 + + + + Qt::Horizontal + + + + + Qt::Vertical + + + + + + - + QFrame::NoFrame @@ -64,7 +79,7 @@ 6 - + Update All Branches @@ -84,21 +99,21 @@ - + All Changesets - + 50 More Changesets - + Done @@ -114,7 +129,7 @@ - PushOk + pushOk clicked() DatabaseView accept() ============================================================ --- guitone/res/i18n/guitone_de.ts 4ff395425b4aa13bd7f4dfa33ea2ef093dc34ec4 +++ guitone/res/i18n/guitone_de.ts baf70459803acb6ee6557e27a7c184c242bab19a @@ -166,28 +166,33 @@ Database - Datenbank + Datenbank - + Update All Branches - Alle Zweige aktualisieren + Alle Zweige aktualisieren - + All Changesets - Alle Änderungen + Alle Änderungen - + 50 More Changesets - 50 weitere Änderungen + 50 weitere Änderungen - + Done - Beenden + Beenden + + + Branches + Zweige + FileDiffDialog @@ -478,7 +483,7 @@ &Database - Daten&bank + Daten&bank ============================================================ --- guitone/src/util/TreeBuilder.cpp 34967a320368a1959472126b6a4468cf9ca55ccb +++ guitone/src/util/TreeBuilder.cpp 67c5514e55da9fecaacc0262bb82a63df1d0fc90 @@ -10,7 +10,7 @@ * 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. * +* GNU General Public License for more details. QStandardItem * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * @@ -20,69 +20,68 @@ #include "TreeBuilder.h" -TreeBuilder::TreeBuilder(QTreeWidgetItem *root, QObject *parent) : QObject(parent) +TreeBuilder::TreeBuilder(QStandardItem *root, QObject *parent) : QObject(parent) { TreeBuilder::root = root; } -QTreeWidgetItem* TreeBuilder::add(const QString &branch) +QStandardItem* TreeBuilder::add(const QString &branch) { - if(branch != ";") + if(branch != "") return add(branch, root); else return NULL; } -void TreeBuilder::addData(QTreeWidgetItem *child) +void TreeBuilder::addData(QStandardItem *child) { QString branch; - QTreeWidgetItem* item = child; + QStandardItem* item = child; while(item) { - branch = item->text(0) + branch; + branch = item->text() + branch; item = item->parent(); } if(branch.right(1) == ".") branch = branch + "*"; - else - branch = branch.mid(0, branch.length() - 1); - child->setData(0, Qt::ToolTipRole, branch.mid(1)); + + child->setData(branch.mid(1), Qt::ToolTipRole); } -QTreeWidgetItem* TreeBuilder::add(const QString &branch, QTreeWidgetItem *parent) +QStandardItem* TreeBuilder::add(const QString &branch, QStandardItem *parent) { if(branch == "") return NULL; - int len = parent->childCount(); + int len = parent->rowCount(); for(int index = 0; index < len; index++) { - int pos = overlap(parent->child(index)->text(0), branch) + 1; + int pos = overlap(parent->child(index)->text(), branch) + 1; if(pos) { - if(pos == parent->child(index)->text(0).length()) + if(pos == parent->child(index)->text().length()) { return add(branch.mid(pos), parent->child(index)); } else { - QTreeWidgetItem *newparent = new QTreeWidgetItem(parent); - newparent->setText(0, branch.left(pos)); - parent->addChild(newparent); - QTreeWidgetItem* ret; + QStandardItem *newparent = new QStandardItem(branch.left(pos)); + parent->appendRow(newparent); + QStandardItem* ret; - ret = add(parent->child(index)->text(0).mid(pos), newparent); - ret->addChildren(parent->child(index)->takeChildren()); + ret = add(parent->child(index)->text().mid(pos), newparent); + QList row = parent->takeRow(index); + row.removeFirst(); + ret->appendRow(row); + ret->removeRow(index); add(branch.mid(pos), newparent); - delete parent->takeChild(index); addData(newparent); return newparent; } } } - QTreeWidgetItem *it = new QTreeWidgetItem(parent); - it->setText(0, branch); - parent->addChild(it); + QStandardItem *it = new QStandardItem(branch); + parent->appendRow(it); addData(it); return it; } @@ -107,5 +106,5 @@ void TreeBuilder::addList(const QString QStringListIterator iterator(branchList); while(iterator.hasNext()) - add(iterator.next() + ";"); + add(iterator.next()); } ============================================================ --- guitone/src/util/TreeBuilder.h 4950399cb259f614b5f4aea4b44b457bc0c4a549 +++ guitone/src/util/TreeBuilder.h 3cd7b826e492b8bd22cc4f7d8eed1ac239c09b97 @@ -28,15 +28,15 @@ public: Q_OBJECT public: - TreeBuilder(QTreeWidgetItem *root, QObject *parent = 0); - QTreeWidgetItem* add(const QString &branch); - QTreeWidgetItem* add(const QString &branch, QTreeWidgetItem *parent); + TreeBuilder(QStandardItem *root, QObject *parent = 0); + QStandardItem* add(const QString &branch); + QStandardItem* add(const QString &branch, QStandardItem *parent); void addList(const QString &branches); private: - void addData(QTreeWidgetItem *item); + void addData(QStandardItem *item); int overlap(const QString &a, const QString &b); - QTreeWidgetItem *root; + QStandardItem *root; }; #endif //TREEBUILDER_H ============================================================ --- guitone/src/view/dialogs/DatabaseView.cpp 85f97f2b60acc4db900c51a3b077413e2d6601f3 +++ guitone/src/view/dialogs/DatabaseView.cpp 4e20a37e9b2bb57976cbed6d2edac3f317b78f4d @@ -28,40 +28,35 @@ DatabaseView::DatabaseView(QWidget *pare this->setWindowFlags(this->windowFlags() | Qt::WindowMinimizeButtonHint); setupSplitterGUI(parent); - initTreeWidget(); readBranches(); } DatabaseView::~DatabaseView() { - delete root; + delete branchModel; delete builder; } -void DatabaseView::branchSelectionChanged() +void DatabaseView::branchesClicked(QModelIndex idx) { - QString branch = branches.selectedItems()[0]->data(0, Qt::ToolTipRole).toString(); - + QString branch = branchModel->itemFromIndex(idx)->data(Qt::ToolTipRole).toString(); readChangesets(branch); } void DatabaseView::initTreeWidget() { - root = new QTreeWidgetItem(&branches); - root->setText(0, "*"); + QStandardItem *root = new QStandardItem("*"); + root->setData("*", Qt::ToolTipRole); + branchModel = new QStandardItemModel(this); + branchModel->appendRow(root); + branchModel->setHorizontalHeaderItem(0, new QStandardItem(tr("Branches"))); - connect(&branches, SIGNAL(itemSelectionChanged()), this, SLOT(branchSelectionChanged())); - - branches.setAnimated(true); - branches.setRootIsDecorated(false); - branches.setColumnCount(1); - branches.setHeaderLabel("Branches"); - - branches.insertTopLevelItem(0, root); - builder = new TreeBuilder(root, this); - root->setExpanded(true); + branches->setModel(branchModel); + connect(branches, SIGNAL(clicked(QModelIndex)), + this, SLOT(branchesClicked(QModelIndex))); + } void DatabaseView::readChangesets(const QString &branch) @@ -82,17 +77,7 @@ void DatabaseView::setupSplitterGUI(QWid void DatabaseView::setupSplitterGUI(QWidget *parent) { - QSplitter *splitterOuter = new QSplitter(parent); - QSplitter *splitterInner = new QSplitter(Qt::Vertical, parent); - splitterOuter->addWidget(&branches); - - splitterInner->addWidget(&changesets); - splitterInner->addWidget(&changesetView); - - splitterOuter->addWidget(splitterInner); - this->Content->layout()->addWidget(splitterOuter); - - splitterOuter->setSizes(QList() << 200 << 422); - splitterInner->setSizes(QList() << 200 << 400); + outerSplitter->setSizes(QList() << 200 << 422); + innerSplitter->setSizes(QList() << 200 << 400); } ============================================================ --- guitone/src/view/dialogs/DatabaseView.h 4e85bfefeefe42181f42158aefdbed56141b422d +++ guitone/src/view/dialogs/DatabaseView.h d58a7df6429d44d7d8a0abc9fb3e250cd0ee4a21 @@ -31,14 +31,12 @@ public: Q_OBJECT public: + QStandardItemModel *branchModel; DatabaseView(QWidget *parent = 0); - QListWidget changesets; - QTreeWidget branches; - QTextBrowser changesetView; ~DatabaseView(); public slots: - void branchSelectionChanged(); + void branchesClicked(QModelIndex idx); private: void setupSplitterGUI(QWidget *parent); @@ -46,7 +44,6 @@ private: void initTreeWidget(); void readChangesets(const QString &branch); Monotone *mtn; - QTreeWidgetItem *root; TreeBuilder *builder; };