diff options
-rw-r--r-- | meson.build | 17 | ||||
-rw-r--r-- | src/meson.build | 11 | ||||
-rw-r--r-- | src/subwindow/subwindow.cpp | 2 | ||||
-rw-r--r-- | src/subwindow/tabwidget.cpp | 17 | ||||
-rw-r--r-- | src/subwindow/tabwidget.h | 4 |
5 files changed, 24 insertions, 27 deletions
diff --git a/meson.build b/meson.build index 5452574..e5b542c 100644 --- a/meson.build +++ b/meson.build @@ -11,19 +11,26 @@ dep_qt5 = dependency('qt5', modules: ['Core', 'Network', 'Widgets', 'WebEngineWi dep_boost = dependency('boost', modules: ['program_options']) # Breakpad +if get_option('Breakpad').enabled() dep_breakpad = declare_dependency( compile_args: '-DBREAKPAD', - dependencies: [dependency('breakpad-client', required: get_option('Breakpad')), - dependency('threads', required: get_option('Breakpad'))] + dependencies: [dependency('breakpad-client'), + dependency('threads')] ) +else + dep_breakpad = declare_dependency() +endif # KDE +if get_option('Plasma').enabled() dep_plasma = declare_dependency( compile_args: '-DPLASMA', - dependencies: [meson.get_compiler('cpp').find_library('KF5WindowSystem', required: get_option('Plasma')), - meson.get_compiler('cpp').find_library('KF5Wallet', required: get_option('Plasma'))], - include_directories: [include_directories('/usr/include/KF5/KWindowSystem'), include_directories('/usr/include/KF5/KWallet')] + dependencies: [ dependency('KF5WindowSystem', method: 'cmake'), + dependency('KF5Wallet', method: 'cmake')] ) +else + dep_plasma = declare_dependency() +endif # add -DQT_NO_DEBUG to non-debug builds if not get_option('debug') diff --git a/src/meson.build b/src/meson.build index 1fb4a98..f07a2ec 100644 --- a/src/meson.build +++ b/src/meson.build @@ -11,18 +11,9 @@ poi_moc = qt5.preprocess( dependencies: dep_qt5 ) -optdepends = [] -if get_option('Breakpad').enabled() - optdepends += dep_breakpad -endif - -if get_option('Plasma').enabled() - optdepends += dep_plasma -endif - poi = executable(get_option('poiName'), install: true, cpp_args: ['-DQAPPLICATION_CLASS=QApplication'], - dependencies: [dep_qt5, dep_boost, dep_SingleApplication, dep_genheaders, optdepends, + dependencies: [dep_qt5, dep_boost, dep_SingleApplication, dep_genheaders, dep_breakpad, dep_plasma, dep_about, dep_addressbar, dep_bookmarks, dep_configuration, dep_downloads, dep_urlfilter, dep_web], include_directories: [include], sources: ['main.cpp', 'builtins.cpp', 'crashhandler.cpp', poi_moc, diff --git a/src/subwindow/subwindow.cpp b/src/subwindow/subwindow.cpp index a83cf14..76eddb3 100644 --- a/src/subwindow/subwindow.cpp +++ b/src/subwindow/subwindow.cpp @@ -168,7 +168,7 @@ int SubWindow::addTab(const QUrl &url, WebProfile *profile) void SubWindow::closeTab(int index) { - tabWidget->deleteTab(index); + tabWidget->removeTab(index); } void SubWindow::setCurrentTab(int index) diff --git a/src/subwindow/tabwidget.cpp b/src/subwindow/tabwidget.cpp index 58e9b03..6951b7b 100644 --- a/src/subwindow/tabwidget.cpp +++ b/src/subwindow/tabwidget.cpp @@ -36,7 +36,7 @@ TabWidget::TabWidget(QWidget *parent) setElideMode(Qt::ElideRight); setMovable(true); - connect(this, &TabWidget::tabCloseRequested, this, &TabWidget::deleteTab); + connect(this, &TabWidget::tabCloseRequested, this, &TabWidget::removeTab); // when changing tabs, give focus to the widget // otherwise when closing tabs, the tabwidget will retain focus @@ -49,14 +49,14 @@ TabWidget::TabWidget(QWidget *parent) tabContextMenu = new QMenu(this); auto *closeTab = tabContextMenu->addAction(tr("Close Tab")); connect(closeTab, &QAction::triggered, this, [this]() { - deleteTab(this->tabBar()->tabAt(mapFromGlobal(tabContextMenu->pos()))); + removeTab(this->tabBar()->tabAt(mapFromGlobal(tabContextMenu->pos()))); }); auto *closeTabsLeft = tabContextMenu->addAction(tr("Close Tabs left")); connect(closeTabsLeft, &QAction::triggered, this, [this]() { int idx = this->tabBar()->tabAt(mapFromGlobal(tabContextMenu->pos())); for(int i = idx - 1; i >= 0; --i) { - deleteTab(i); + removeTab(i); } }); @@ -64,7 +64,7 @@ TabWidget::TabWidget(QWidget *parent) connect(closeTabsRight, &QAction::triggered, this, [this]() { int idx = this->tabBar()->tabAt(mapFromGlobal(tabContextMenu->pos())); for(int i = count() - 1; i > idx; --i) { - deleteTab(i); + removeTab(i); } }); } @@ -100,7 +100,7 @@ int TabWidget::addTab(WebView *view) return idx; } -void TabWidget::deleteTab(int index) +void TabWidget::removeTab(int index) { // deleting the widget automatically removes the tab? WebView *w = qobject_cast<WebView *>(widget(index)); @@ -117,11 +117,8 @@ void TabWidget::deleteTab(int index) m_closedTabs.dequeue(); } - disconnect(w); + QTabWidget::removeTab(index); delete w; - - if(count() == 0) - parentWidget()->close(); } int TabWidget::restoreLastTab() @@ -171,7 +168,7 @@ void TabWidget::mousePressEvent(QMouseEvent *event) if(event->button() == Qt::MiddleButton) { int index = tabBar()->tabAt(event->pos()); if(index >= 0) { - deleteTab(index); + removeTab(index); } event->accept(); return; diff --git a/src/subwindow/tabwidget.h b/src/subwindow/tabwidget.h index ef1930d..d615bcb 100644 --- a/src/subwindow/tabwidget.h +++ b/src/subwindow/tabwidget.h @@ -36,7 +36,7 @@ public: public slots: int addTab(WebView *view); - void deleteTab(int index); + void removeTab(int index); int restoreLastTab(); void restoreTabMenu(QMenu *menu); @@ -45,6 +45,8 @@ protected: void contextMenuEvent(QContextMenuEvent *event) override; void mousePressEvent(QMouseEvent *event) override; + + private: QMenu *tabContextMenu; QQueue<TabInformation> m_closedTabs; |