diff options
| -rw-r--r-- | src/browser.cpp | 6 | ||||
| -rw-r--r-- | src/browser.h | 2 | ||||
| -rw-r--r-- | src/main.cpp | 6 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 11 | ||||
| -rw-r--r-- | src/mainwindow.h | 5 | 
5 files changed, 16 insertions, 14 deletions
| diff --git a/src/browser.cpp b/src/browser.cpp index cc68174..2b35e21 100644 --- a/src/browser.cpp +++ b/src/browser.cpp @@ -21,12 +21,6 @@ Browser::~Browser()      m_windows.clear();
  }
 -
 -QVector<MainWindow*> Browser::windows()
 -{
 -    return m_windows;
 -}
 -
  void Browser::addWindow(MainWindow *window)
  {
      if(m_windows.contains(window)) {
 diff --git a/src/browser.h b/src/browser.h index 938acda..38826f0 100644 --- a/src/browser.h +++ b/src/browser.h @@ -13,8 +13,6 @@ public:      explicit Browser(QString configPath, QObject *parent = 0);
      ~Browser();
 -    // what is windows() useful for?
 -    QVector<MainWindow*> windows();
      void addWindow(MainWindow* window);
  public slots:
 diff --git a/src/main.cpp b/src/main.cpp index f8c9c7d..a0ec78f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -26,12 +26,12 @@ int main(int argc, char *argv[])      if(parser.positionalArguments().length() > 0) {
          QUrl url = QUrl::fromUserInput(parser.positionalArguments().at(0));
          if(url.isValid()) {
 -            instance.addWindow(new MainWindow(url));
 +            instance.addWindow(new MainWindow(&instance, url));
          } else {
 -            instance.addWindow(new MainWindow());
 +            instance.addWindow(new MainWindow(&instance));
          }
      } else {
 -        instance.addWindow(new MainWindow());
 +        instance.addWindow(new MainWindow(&instance));
      }
      return app.exec();
 diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 763d192..dea9f79 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -4,8 +4,9 @@  #include <QMenu>
  #include <QCloseEvent>
  #include <QMessageBox>
 +#include "browser.h"
 -MainWindow::MainWindow(QUrl defaultUrl, QWidget *parent) :
 +MainWindow::MainWindow(Browser *instance, QUrl defaultUrl, QWidget *parent) :
      QMainWindow(parent),
      ui(new Ui::MainWindow),
      navigationToolBar(new QToolBar(this)),
 @@ -13,6 +14,7 @@ MainWindow::MainWindow(QUrl defaultUrl, QWidget *parent) :      tabBar(new WebViewTabBar(this)),
      urlLineEdit(new QLineEdit(navigationToolBar))
  {
 +    browserInstance = instance;
      Settings settings;
      ui->setupUi(this);
 @@ -21,8 +23,8 @@ MainWindow::MainWindow(QUrl defaultUrl, QWidget *parent) :      // Populate the menu bar
      // Browser menu - with new window, new tab, open and quit
      QMenu *browserMenu = new QMenu(qApp->applicationName(), ui->menuBar);
 +    browserMenu->addAction(tr("New Window"), this, SLOT(handleNewWindow()), QKeySequence(tr("Ctrl+N")));
      browserMenu->addAction(tr("New Tab"), this, SLOT(createNewTab()), QKeySequence(tr("Ctrl+T")));
 -    browserMenu->addAction(tr("New Window"));
      browserMenu->addSeparator();
      browserMenu->addAction(tr("Quit"), qApp, SLOT(quit()), QKeySequence(tr("Ctrl+Q")));
      ui->menuBar->addMenu(browserMenu);
 @@ -70,6 +72,11 @@ void MainWindow::closeEvent(QCloseEvent *event)      QMainWindow::closeEvent(event);
  }
 +void MainWindow::handleNewWindow(const QUrl &url)
 +{
 +    browserInstance->addWindow(new MainWindow(browserInstance, url));
 +}
 +
  void MainWindow::handleTabChanged(QWebEngineView *view)
  {
      centralWidget()->setParent(0);
 diff --git a/src/mainwindow.h b/src/mainwindow.h index 48ce43f..7371759 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -12,12 +12,13 @@ namespace Ui {  class MainWindow;
  }
 +class Browser;
  class MainWindow : public QMainWindow
  {
      Q_OBJECT
  public:
 -    explicit MainWindow(QUrl defaultUrl = QUrl(""), QWidget *parent = 0);
 +    explicit MainWindow(Browser *instance, QUrl defaultUrl = QUrl(""), QWidget *parent = 0);
      ~MainWindow();
  public slots:
 @@ -27,12 +28,14 @@ protected:      void closeEvent(QCloseEvent *event) override;
  private slots:
 +    void handleNewWindow(const QUrl &url = QUrl(""));
      void handleTabChanged(QWebEngineView *view);
      void handleUrlChanged();
      void handleUrlUpdated(const QUrl &url);
      void handleTitleUpdated(const QString &title);
  private:
 +    Browser *browserInstance;
      Ui::MainWindow *ui;
      QToolBar *navigationToolBar, *tabToolBar;
      WebViewTabBar *tabBar;
 | 
