From 62f292ad143923a3b774b9bd14f83f3b640c0cb8 Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Mon, 18 Jun 2007 19:47:01 +0000 Subject: [PATCH] Minor Update: - some minor fixes - preparation for query merging and custom views --- gui/bufferview.cpp | 9 +++++++++ gui/bufferview.h | 3 +++ gui/bufferviewwidget.cpp | 11 ++++++++++- gui/mainwin.cpp | 2 +- 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/gui/bufferview.cpp b/gui/bufferview.cpp index e0923cff..4045f206 100644 --- a/gui/bufferview.cpp +++ b/gui/bufferview.cpp @@ -97,3 +97,12 @@ void BufferView::setFilteredModel(QAbstractItemModel *model, BufferViewFilter::M setModel(filter); } +void BufferView::setModel(QAbstractItemModel *model) { + QTreeView::setModel(model); + init(); +} + +void BufferView::dragEnterEvent(QDragEnterEvent *event) { + // not yet needed... this will be usefull to keep track of the active view when customizing them with drag and drop + QTreeView::dragEnterEvent(event); +} diff --git a/gui/bufferview.h b/gui/bufferview.h index 49f3a809..0dea9bbe 100644 --- a/gui/bufferview.h +++ b/gui/bufferview.h @@ -73,8 +73,11 @@ class BufferView : public QTreeView { public: BufferView(QWidget *parent = 0); void init(); + void setModel(QAbstractItemModel *model); void setFilteredModel(QAbstractItemModel *model, BufferViewFilter::Modes mode, QStringList nets); + void dragEnterEvent(QDragEnterEvent *); + }; diff --git a/gui/bufferviewwidget.cpp b/gui/bufferviewwidget.cpp index 31023f74..e21b98ba 100644 --- a/gui/bufferviewwidget.cpp +++ b/gui/bufferviewwidget.cpp @@ -331,6 +331,16 @@ bool BufferTreeModel::dropMimeData(const QMimeData *data, Qt::DropAction action, Buffer *sourceBuffer = static_cast(networkItem[network]->child(sourcerow))->buffer(); Buffer *targetBuffer = getBufferByIndex(parent); + if(sourceBuffer == targetBuffer) // we won't merge with ourself :) + return false; + + + if(QMessageBox::warning(static_cast(QObject::parent()), + tr("Merge Buffers?"), + tr("Do you really want to merge the following Buffers?
%1.%2
%3.%4").arg(sourceBuffer->networkName()).arg(sourceBuffer->bufferName()).arg(targetBuffer->networkName()).arg(targetBuffer->bufferName()), + QMessageBox::Yes|QMessageBox::No) == QMessageBox::No) + return false; + qDebug() << "merging" << sourceBuffer->bufferName() << "with" << targetBuffer->bufferName(); bufferItem.remove(getBufferByIndex(parent)); removeRow(parent.row(), BufferTreeModel::parent(parent)); @@ -398,6 +408,5 @@ BufferViewDock::BufferViewDock(QAbstractItemModel *model, QString viewname, Buff BufferViewWidget *viewWidget = new BufferViewWidget(this); viewWidget->treeView()->setFilteredModel(model, mode, nets); - viewWidget->treeView()->init(); setWidget(viewWidget); } diff --git a/gui/mainwin.cpp b/gui/mainwin.cpp index 0a691214..1e88be01 100644 --- a/gui/mainwin.cpp +++ b/gui/mainwin.cpp @@ -153,7 +153,7 @@ void MainWin::setupMenus() { } void MainWin::setupViews() { - BufferTreeModel *model = new BufferTreeModel(); + BufferTreeModel *model = new BufferTreeModel(this); connect(model, SIGNAL(bufferSelected(Buffer *)), this, SLOT(showBuffer(Buffer *))); connect(this, SIGNAL(bufferSelected(Buffer *)), model, SLOT(selectBuffer(Buffer *))); connect(this, SIGNAL(bufferUpdated(Buffer *)), model, SLOT(bufferUpdated(Buffer *))); -- 2.20.1