void MainWindow::init(bool is_development) { //qApp->installEventFilter(this); setWindowTitle(settings->value("window_title").toString()); if (settings->value("minified_state").toString() == "true") { setWindowState(Qt::WindowMinimized); } this->setMinimumWidth(430); this->setMinimumHeight(430); webView = new QWebView(this); if (settings->value("context_menu").toString() == "false") { webView->setContextMenuPolicy(Qt::NoContextMenu); } this->setCentralWidget(webView); m_network_manager = new QNetworkAccessManager(this); QWebPage *webPage = webView->page(); webPage->setNetworkAccessManager(m_network_manager); webPage->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); connect(webPage, &QWebPage::linkClicked, this, &MainWindow::onLinkClicked); connect(webPage->mainFrame(), &QWebFrame::javaScriptWindowObjectCleared, this, &MainWindow::attachJsApi); webView->show(); bootstrap(is_development); // restore saved window geometry from .ini file QVariant size = settings->value("main_window_geometry"); if ( size.isNull() ) { this->setGeometry(QRect(500, 100, 700, 500)); } else { this->setGeometry(size.toRect()); } // restore saved zoom factor from .ini file qreal z = settings->value("zoom_factor").toReal(); if ( z ) webView->page()->mainFrame()->setZoomFactor(z); m_jsApi = new JsApi(this); optionsDialog = new OptionsDialog(this); optionsDialog->m_version = m_version; connect(optionsDialog, SIGNAL(accepting()), m_jsApi, SLOT(onOptionsDialogAccepted())); QShortcut *zoomin = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Plus), this); connect(zoomin, &QShortcut::activated, this, &MainWindow::onZoomIn); QShortcut *zoomout = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Minus), this); connect(zoomout, &QShortcut::activated, this, &MainWindow::onZoomOut); QShortcut *shutdown = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this); connect(shutdown, &QShortcut::activated, m_jsApi, &JsApi::shutdown); QWebSettings::setObjectCacheCapacities(0, 0, 0); if (settings->value("webinspector").toString() == "true") { QWebSettings::globalSettings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true); QWebInspector *inspector; inspector = new QWebInspector(); inspector->setPage(webView->page()); inspector->setGeometry(QRect(500, 10, 1000, 700)); inspector->show(); } QIcon icon = QIcon(application_path + "/" + APPNAME + ".png"); m_trayIcon = new QSystemTrayIcon(this); m_trayIcon->setIcon(icon); m_trayIcon->show(); connect(m_trayIcon, &QSystemTrayIcon::messageClicked, m_jsApi, &JsApi::onTrayMessageClicked); connect(m_trayIcon, &QSystemTrayIcon::activated, m_jsApi, &JsApi::onTrayIconActivated); }