aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.cpp6
-rw-r--r--src/mainwindow.cpp9
-rw-r--r--src/mainwindow.h1
-rw-r--r--src/widgets/mainwindowmenubar.cpp31
-rw-r--r--src/widgets/mainwindowmenubar.h4
5 files changed, 35 insertions, 16 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 789a3e6..9c12b64 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -92,9 +92,9 @@ int main(int argc, char *argv[])
app.loadProfiles();
// Load plugins
- if(!parser.isSet(nopluginsOption)) {
- app.loadPlugins();
- }
+// if(!parser.isSet(nopluginsOption)) {
+// app.loadPlugins();
+// }
MainWindow *w = new MainWindow(parser.positionalArguments());
if(parser.isSet(profileOption)) {
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index bce1716..dd16172 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -30,6 +30,8 @@
#include <QToolButton>
#include <QStyle>
+#include <QFileDialog>
+
MainWindow::MainWindow(QUrl defaultUrl, QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
@@ -55,6 +57,11 @@ MainWindow::MainWindow(QUrl defaultUrl, QWidget *parent) :
MainWindowMenuBar *menuBar = new MainWindowMenuBar(this);
menuBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
+ connect(menuBar->printAction(), &QAction::triggered, [this]() {
+ QString path = QFileDialog::getSaveFileName(this, tr("Print to PDF"), QDir::homePath(), tr("PDF files (*.pdf)"));
+ m_currentView->page()->printToPdf(path);
+ });
+
// Add the toolbars
// tabToolBar: main menu and tab list
tabToolBar->setMovable(sSettings->value("window.ui.tabtoolbarMovable").toBool());
@@ -213,6 +220,8 @@ void MainWindow::handleTabChanged(WebView *view)
{
Q_ASSERT(view != nullptr);
+ m_currentView = view;
+
// centralWidget can be a nullptr
if(centralWidget()) {
// clear the parent of the central widget so it doesn't get deleted
diff --git a/src/mainwindow.h b/src/mainwindow.h
index b0572c5..cf0bac5 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -69,6 +69,7 @@ private:
Ui::MainWindow *ui;
QToolBar *navigationToolBar, *tabToolBar;
WebViewTabBar *tabBar;
+ WebView *m_currentView;
AddressBar *m_addressBar;
LoadingBar *m_progressBar;
};
diff --git a/src/widgets/mainwindowmenubar.cpp b/src/widgets/mainwindowmenubar.cpp
index ba28607..8dd7fe6 100644
--- a/src/widgets/mainwindowmenubar.cpp
+++ b/src/widgets/mainwindowmenubar.cpp
@@ -54,16 +54,17 @@ MainWindowMenuBar::MainWindowMenuBar(MainWindow *parent) :
toolsMenu->addSeparator();
toolsMenu->addAction(tr("Filter"), qApp->blocklists(), SLOT(show()), QKeySequence::fromString(sSettings->value("blocker.shortcut").toString()));
- if(qApp->plugin("")) {
- GuiInterface *gui = qobject_cast<GuiInterface *>(qApp->plugin(""));
- if(gui) {
- toolsMenu->addAction(gui->action());
- } else {
- qDebug("Plugin doesn't gui");
- }
- } else {
- qDebug("No plugin!");
- }
+ // Plugins
+// if(qApp->plugin("")) {
+// GuiInterface *gui = qobject_cast<GuiInterface *>(qApp->plugin(""));
+// if(gui) {
+// toolsMenu->addAction(gui->action());
+// } else {
+// qDebug("Plugin doesn't gui");
+// }
+// } else {
+// qDebug("No plugin!");
+// }
// Profile menu
QMenu *profileMenu = new QMenu(tr("Profile"), this);
@@ -73,10 +74,14 @@ MainWindowMenuBar::MainWindowMenuBar(MainWindow *parent) :
// Page menu
QMenu *pageMenu = new QMenu(tr("Page"), this);
addMenu(pageMenu);
- pageMenu->addAction(tr("Print"));
- pageMenu->addAction(tr("Print to PDF"));
- pageMenu->addAction(tr("Zoom"));
+ pageMenu->addAction(tr("Print"))->setEnabled(false);
+ m_printAction = pageMenu->addAction(tr("Print to PDF"));
+ pageMenu->addAction(tr("Zoom"))->setEnabled(false);
+}
+QAction *MainWindowMenuBar::printAction()
+{
+ return m_printAction;
}
void MainWindowMenuBar::handleLoadProfile()
diff --git a/src/widgets/mainwindowmenubar.h b/src/widgets/mainwindowmenubar.h
index a6c6dc4..43c786b 100644
--- a/src/widgets/mainwindowmenubar.h
+++ b/src/widgets/mainwindowmenubar.h
@@ -30,11 +30,15 @@ class MainWindowMenuBar : public QMenuBar
public:
explicit MainWindowMenuBar(MainWindow *parent = nullptr);
+ QAction *printAction();
+
private slots:
void handleLoadProfile();
private:
MainWindow *m_parentWindow;
+
+ QAction *m_printAction;
};
#endif // MAINWINDOWMENUBAR_H