aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/taskbar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/taskbar.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/taskbar.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/taskbar.cpp b/SQLiteStudio3/guiSQLiteStudio/taskbar.cpp
index 915ca9a..ba797f6 100644
--- a/SQLiteStudio3/guiSQLiteStudio/taskbar.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/taskbar.cpp
@@ -31,10 +31,11 @@ QAction* TaskBar::addTask(const QIcon& icon, const QString& text)
QAction* action = QToolBar::addAction(icon, text);
tasks << action;
QToolButton* btn = getToolButton(action);
- btn->setMaximumWidth(400);
if (!btn)
return action;
+ btn->setMaximumWidth(400);
+ btn->installEventFilter(this);
taskGroup.addAction(action);
connect(btn, SIGNAL(pressed()), this, SLOT(mousePressed()));
return action;
@@ -204,6 +205,21 @@ void TaskBar::dropEvent(QDropEvent *event)
event->acceptProposedAction();
}
+bool TaskBar::eventFilter(QObject* obj, QEvent* event)
+{
+ if (event->type() == QEvent::MouseButtonPress && dynamic_cast<QMouseEvent*>(event)->button() == Qt::MiddleButton)
+ {
+ QToolButton* btn = dynamic_cast<QToolButton*>(obj);
+ if (btn && btn->defaultAction())
+ {
+ btn->defaultAction()->trigger();
+ MDIAREA->closeActiveSubWindow();
+ return true;
+ }
+ }
+ return QObject::eventFilter(obj, event);
+}
+
void TaskBar::dragTaskTo(QAction* task, const QPoint& position)
{
int idx = getDropPositionIndex(task, position);