Skip to content
Snippets Groups Projects
Commit 2cc8cb98 authored by stefan's avatar stefan
Browse files

Panels, TabbedViewMode support for drops on whole widget

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2549 5a81b35b-ba03-0410-adc8-b2c5c5119f08
parent e458d096
No related branches found
No related tags found
No related merge requests found
...@@ -48,6 +48,7 @@ TabbedPanelBar::TabbedPanelBar(PanelBar* parent): ...@@ -48,6 +48,7 @@ TabbedPanelBar::TabbedPanelBar(PanelBar* parent):
toolbar_->setIconSize(QSize(16,16)); toolbar_->setIconSize(QSize(16,16));
tab_widget_->setCornerWidget(toolbar_, Qt::TopRightCorner); tab_widget_->setCornerWidget(toolbar_, Qt::TopRightCorner);
connect(tab_widget_,SIGNAL(currentChanged(int)),this,SLOT(CurrentChanged(int))); connect(tab_widget_,SIGNAL(currentChanged(int)),this,SLOT(CurrentChanged(int)));
this->setAcceptDrops(true);
} }
bool TabbedPanelBar::Save(const QString& prefix) bool TabbedPanelBar::Save(const QString& prefix)
...@@ -97,6 +98,27 @@ void TabbedPanelBar::CurrentChanged(int index){ ...@@ -97,6 +98,27 @@ void TabbedPanelBar::CurrentChanged(int index){
} }
} }
void TabbedPanelBar::dragEnterEvent(QDragEnterEvent *event)
{
if (event->mimeData()->hasFormat("OpenStructure/Widget")){
PanelManager* panels = GostyApp::Instance()->GetPerspective()->GetPanels();
panels->StartDrag();
event->acceptProposedAction();
}
}
void TabbedPanelBar::dropEvent(QDropEvent *event)
{
const QMimeData* mime_data = event->mimeData();
QVariant variant = mime_data->property("OpenStructure/Widget");
Widget* widget = variant.value<Widget*>();
Widget* current_widget = qobject_cast<Widget*>(tab_widget_->currentWidget());
if(widget && current_widget && widget != current_widget){
GostyApp::Instance()->GetPerspective()->GetPanels()->MoveNextTo(current_widget,widget);
}
event->acceptProposedAction();
}
TabbedPanelBar::~TabbedPanelBar(){ TabbedPanelBar::~TabbedPanelBar(){
toolbar_->clear(); toolbar_->clear();
} }
...@@ -109,9 +131,7 @@ TabbedDragWidget::TabbedDragWidget(QWidget* parent): ...@@ -109,9 +131,7 @@ TabbedDragWidget::TabbedDragWidget(QWidget* parent):
//DragTabBar //DragTabBar
DragTabBar::DragTabBar(QTabWidget* parent): DragTabBar::DragTabBar(QTabWidget* parent):
QTabBar(parent),tab_widget_(parent) { QTabBar(parent),tab_widget_(parent) {}
this->setAcceptDrops(true);
}
void DragTabBar::mousePressEvent(QMouseEvent *event) void DragTabBar::mousePressEvent(QMouseEvent *event)
{ {
...@@ -144,26 +164,7 @@ void DragTabBar::mouseMoveEvent(QMouseEvent *event) ...@@ -144,26 +164,7 @@ void DragTabBar::mouseMoveEvent(QMouseEvent *event)
panels->EndDrag(); panels->EndDrag();
} }
void DragTabBar::dragEnterEvent(QDragEnterEvent *event)
{
if (event->mimeData()->hasFormat("OpenStructure/Widget")){
PanelManager* panels = GostyApp::Instance()->GetPerspective()->GetPanels();
panels->StartDrag();
event->acceptProposedAction();
}
}
void DragTabBar::dropEvent(QDropEvent *event)
{
const QMimeData* mime_data = event->mimeData();
QVariant variant = mime_data->property("OpenStructure/Widget");
Widget* widget = variant.value<Widget*>();
Widget* current_widget = qobject_cast<Widget*>(tab_widget_->currentWidget());
if(widget && current_widget && widget != current_widget){
GostyApp::Instance()->GetPerspective()->GetPanels()->MoveNextTo(current_widget,widget);
}
event->acceptProposedAction();
}
}} }}
...@@ -45,8 +45,6 @@ public: ...@@ -45,8 +45,6 @@ public:
protected: protected:
void mousePressEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);
private: private:
QTabWidget* tab_widget_; QTabWidget* tab_widget_;
...@@ -74,6 +72,10 @@ public: ...@@ -74,6 +72,10 @@ public:
void WidgetMoved(Widget* widget, int position); void WidgetMoved(Widget* widget, int position);
QString GetName(); QString GetName();
protected:
void dragEnterEvent(QDragEnterEvent *event);
void dropEvent(QDropEvent *event);
private: private:
virtual void ShowWidget(Widget* widget, int pos, bool show); virtual void ShowWidget(Widget* widget, int pos, bool show);
QHBoxLayout* layout_; QHBoxLayout* layout_;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment