aboutsummaryrefslogtreecommitdiff
path: root/src/widgets
diff options
context:
space:
mode:
authorFelix (xq) Queißner <git@mq32.de>2020-06-27 00:28:03 +0200
committerFelix (xq) Queißner <git@mq32.de>2020-06-27 00:28:03 +0200
commitad15a056672f049cf8302fc7a0a94b71f42db356 (patch)
tree3dafbbd36648ba664dc836fff6bf5e42bd274c77 /src/widgets
parenta2d567a95e388e946cae8b0a5e30a7428f12eba4 (diff)
downloadkristall-ad15a056672f049cf8302fc7a0a94b71f42db356.tar.gz
Allows middle-clicking to close tabs.
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/browsertabbar.cpp18
-rw-r--r--src/widgets/browsertabbar.hpp15
-rw-r--r--src/widgets/browsertabwidget.cpp8
-rw-r--r--src/widgets/browsertabwidget.hpp16
4 files changed, 57 insertions, 0 deletions
diff --git a/src/widgets/browsertabbar.cpp b/src/widgets/browsertabbar.cpp
new file mode 100644
index 0000000..503157f
--- /dev/null
+++ b/src/widgets/browsertabbar.cpp
@@ -0,0 +1,18 @@
+#include "browsertabbar.hpp"
+
+#include <QMouseEvent>
+
+BrowserTabBar::BrowserTabBar(QWidget *parent) :
+ QTabBar(parent)
+{
+
+}
+
+void BrowserTabBar::mouseReleaseEvent(QMouseEvent *event)
+{
+ if(event->button() == Qt::MiddleButton) {
+ emit tabCloseRequested(this->tabAt(event->pos()));
+ } else {
+ QTabBar::mousePressEvent(event);
+ }
+}
diff --git a/src/widgets/browsertabbar.hpp b/src/widgets/browsertabbar.hpp
new file mode 100644
index 0000000..f1cd49b
--- /dev/null
+++ b/src/widgets/browsertabbar.hpp
@@ -0,0 +1,15 @@
+#ifndef BROWSERTABS_HPP
+#define BROWSERTABS_HPP
+
+#include <QTabBar>
+
+class BrowserTabBar : public QTabBar
+{
+ Q_OBJECT
+public:
+ explicit BrowserTabBar(QWidget * parent);
+
+ void mouseReleaseEvent(QMouseEvent *event) override;
+};
+
+#endif // BROWSERTABS_HPP
diff --git a/src/widgets/browsertabwidget.cpp b/src/widgets/browsertabwidget.cpp
new file mode 100644
index 0000000..7419c52
--- /dev/null
+++ b/src/widgets/browsertabwidget.cpp
@@ -0,0 +1,8 @@
+#include "browsertabwidget.hpp"
+
+#include "browsertabbar.hpp"
+
+BrowserTabWidget::BrowserTabWidget(QWidget *parent) : QTabWidget(parent)
+{
+ this->setTabBar(new BrowserTabBar(this));
+}
diff --git a/src/widgets/browsertabwidget.hpp b/src/widgets/browsertabwidget.hpp
new file mode 100644
index 0000000..dd4142c
--- /dev/null
+++ b/src/widgets/browsertabwidget.hpp
@@ -0,0 +1,16 @@
+#ifndef BROWSERTABWIDGET_HPP
+#define BROWSERTABWIDGET_HPP
+
+#include <QTabWidget>
+
+class BrowserTabWidget : public QTabWidget
+{
+ Q_OBJECT
+public:
+ explicit BrowserTabWidget(QWidget *parent = nullptr);
+
+signals:
+
+};
+
+#endif // BROWSERTABWIDGET_HPP