diff options
| -rw-r--r-- | lslayoutwindow.cpp | 4 | ||||
| -rw-r--r-- | lsscenemodel.cpp | 17 | ||||
| -rw-r--r-- | lsscenemodel.h | 3 | 
3 files changed, 24 insertions, 0 deletions
diff --git a/lslayoutwindow.cpp b/lslayoutwindow.cpp index 518d022..7360dcb 100644 --- a/lslayoutwindow.cpp +++ b/lslayoutwindow.cpp @@ -75,6 +75,10 @@ LSLayoutWindow::LSLayoutWindow(LYTPackageBase *pkg, const QString &layoutName, Q  	m_widthBox->setValue(m_layout->width);  	m_heightBox->setValue(m_layout->height); +	m_sceneGraph->setSelectionMode(QAbstractItemView::ExtendedSelection); +	m_sceneGraph->setDragEnabled(true); +	m_sceneGraph->setAcceptDrops(true); +	m_sceneGraph->setDropIndicatorShown(true);  	m_sceneGraph->setModel(new LSSceneModel(m_layout, this));  	m_sceneGraph->expandAll(); diff --git a/lsscenemodel.cpp b/lsscenemodel.cpp index 38da4e7..e2e411c 100644 --- a/lsscenemodel.cpp +++ b/lsscenemodel.cpp @@ -68,3 +68,20 @@ QVariant LSSceneModel::data(const QModelIndex &index, int role) const {  	}  	return QVariant();  } + + +Qt::ItemFlags LSSceneModel::flags(const QModelIndex &index) const { +	Qt::ItemFlags flag; +	flag = Qt::ItemIsEnabled | Qt::ItemIsSelectable | +			Qt::ItemIsDropEnabled | Qt::ItemIsEditable; + +	if (index.isValid() && index.parent().isValid()) +		flag |= Qt::ItemIsDragEnabled; + +	return flag; +} + + +Qt::DropActions LSSceneModel::supportedDropActions() const { +	return Qt::CopyAction | Qt::MoveAction; +} diff --git a/lsscenemodel.h b/lsscenemodel.h index 00cb736..c769857 100644 --- a/lsscenemodel.h +++ b/lsscenemodel.h @@ -18,6 +18,9 @@ public:  	int columnCount(const QModelIndex &parent) const;  	QVariant data(const QModelIndex &index, int role) const; +	Qt::ItemFlags flags(const QModelIndex &index) const; +	Qt::DropActions supportedDropActions() const; +  private:  	LYTLayout *m_layout;  | 
