syncthingtray/tray/gui/webviewdialog.cpp

76 lines
1.8 KiB
C++
Raw Normal View History

2016-08-25 00:45:32 +02:00
#ifndef SYNCTHINGTRAY_NO_WEBVIEW
#include "./webviewdialog.h"
#include "./webpage.h"
#include "../application/settings.h"
#include <qtutilities/misc/dialogutils.h>
#include <QIcon>
#include <QCloseEvent>
2016-11-01 17:16:27 +01:00
#include <QKeyEvent>
2016-08-25 00:45:32 +02:00
#if defined(SYNCTHINGTRAY_USE_WEBENGINE)
# include <QWebEngineView>
#elif defined(SYNCTHINGTRAY_USE_WEBKIT)
# include <QWebView>
#endif
using namespace Dialogs;
namespace QtGui {
WebViewDialog::WebViewDialog(QWidget *parent) :
QMainWindow(parent),
m_view(new WEB_VIEW_PROVIDER(this))
{
setWindowTitle(tr("Syncthing"));
setWindowIcon(QIcon(QStringLiteral(":/icons/hicolor/scalable/app/syncthingtray.svg")));
setCentralWidget(m_view);
2016-09-03 20:14:52 +02:00
m_view->setPage(new WebPage(this, m_view));
connect(m_view, &WEB_VIEW_PROVIDER::titleChanged, this, &WebViewDialog::setWindowTitle);
2016-08-25 00:45:32 +02:00
2016-11-02 20:03:38 +01:00
if(Settings::values().webView.geometry.isEmpty()) {
2016-08-25 00:45:32 +02:00
resize(1200, 800);
centerWidget(this);
} else {
2016-11-02 20:03:38 +01:00
restoreGeometry(Settings::values().webView.geometry);
2016-08-25 00:45:32 +02:00
}
}
QtGui::WebViewDialog::~WebViewDialog()
{
2016-11-02 20:03:38 +01:00
Settings::values().webView.geometry = saveGeometry();
2016-08-25 00:45:32 +02:00
}
void QtGui::WebViewDialog::applySettings(const Data::SyncthingConnectionSettings &connectionSettings)
2016-08-25 00:45:32 +02:00
{
2016-09-03 20:14:52 +02:00
m_settings = connectionSettings;
m_view->setUrl(connectionSettings.syncthingUrl);
2016-11-02 20:03:38 +01:00
m_view->setZoomFactor(Settings::values().webView.zoomFactor);
2016-08-25 00:45:32 +02:00
}
void QtGui::WebViewDialog::closeEvent(QCloseEvent *event)
{
2016-11-02 20:03:38 +01:00
if(!Settings::values().webView.keepRunning) {
2016-08-25 00:45:32 +02:00
deleteLater();
}
event->accept();
}
2016-11-01 17:16:27 +01:00
void WebViewDialog::keyPressEvent(QKeyEvent *event)
{
switch(event->key()) {
case Qt::Key_F5:
m_view->reload();
event->accept();
break;
default:
QMainWindow::keyPressEvent(event);
}
}
2016-08-25 00:45:32 +02:00
}
2016-09-01 16:34:30 +02:00
#endif // SYNCTHINGTRAY_NO_WEBVIEW