add first iteration of the integrated browser
This commit is contained in:
parent
b66be337fd
commit
79c5ae121b
@ -106,6 +106,7 @@ gui/settingsdialog.cpp
|
|||||||
gui/newinstancedialog.cpp
|
gui/newinstancedialog.cpp
|
||||||
gui/logindialog.cpp
|
gui/logindialog.cpp
|
||||||
gui/taskdialog.cpp
|
gui/taskdialog.cpp
|
||||||
|
gui/browserdialog.cpp
|
||||||
|
|
||||||
util/pathutils.cpp
|
util/pathutils.cpp
|
||||||
util/osutils.cpp
|
util/osutils.cpp
|
||||||
@ -124,6 +125,7 @@ gui/settingsdialog.h
|
|||||||
gui/newinstancedialog.h
|
gui/newinstancedialog.h
|
||||||
gui/logindialog.h
|
gui/logindialog.h
|
||||||
gui/taskdialog.h
|
gui/taskdialog.h
|
||||||
|
gui/browserdialog.h
|
||||||
|
|
||||||
data/appsettings.h
|
data/appsettings.h
|
||||||
data/inifile.h
|
data/inifile.h
|
||||||
@ -159,6 +161,7 @@ gui/settingsdialog.ui
|
|||||||
gui/newinstancedialog.ui
|
gui/newinstancedialog.ui
|
||||||
gui/logindialog.ui
|
gui/logindialog.ui
|
||||||
gui/taskdialog.ui
|
gui/taskdialog.ui
|
||||||
|
gui/browserdialog.ui
|
||||||
)
|
)
|
||||||
|
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
@ -172,11 +175,13 @@ QT5_WRAP_UI(MULTIMC_UI ${MULTIMC5_UIS})
|
|||||||
QT5_ADD_RESOURCES(MULTIMC_QRC multimc.qrc)
|
QT5_ADD_RESOURCES(MULTIMC_QRC multimc.qrc)
|
||||||
|
|
||||||
add_executable(MultiMC ${MULTIMC_SOURCES} ${MULTIMC_HEADERS} ${MULTIMC_UI} ${MULTIMC_QRC})
|
add_executable(MultiMC ${MULTIMC_SOURCES} ${MULTIMC_HEADERS} ${MULTIMC_UI} ${MULTIMC_QRC})
|
||||||
qt5_use_modules(MultiMC Widgets Network)
|
qt5_use_modules(MultiMC Widgets Network WebKitWidgets)
|
||||||
target_link_libraries(MultiMC quazip patchlib ${MultiMC_LINK_ADDITIONAL_LIBS})
|
target_link_libraries(MultiMC quazip patchlib ${MultiMC_LINK_ADDITIONAL_LIBS})
|
||||||
add_dependencies(MultiMC MultiMCLauncher)
|
add_dependencies(MultiMC MultiMCLauncher)
|
||||||
install(TARGETS MultiMC RUNTIME DESTINATION .)
|
install(TARGETS MultiMC RUNTIME DESTINATION .)
|
||||||
|
|
||||||
|
SET(Qt5_DIR $ENV{QTDIR})
|
||||||
|
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
SET(D "d")
|
SET(D "d")
|
||||||
|
76
gui/browserdialog.cpp
Normal file
76
gui/browserdialog.cpp
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
#include "browserdialog.h"
|
||||||
|
#include "ui_browserdialog.h"
|
||||||
|
|
||||||
|
#include <QtWebKit/QWebHistory>
|
||||||
|
|
||||||
|
BrowserDialog::BrowserDialog(QWidget *parent) :
|
||||||
|
QDialog(parent),
|
||||||
|
ui(new Ui::BrowserDialog),
|
||||||
|
m_pageTitleInWindowTitle(true),
|
||||||
|
m_windowTitleFormat("%1")
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
ui->webView->setPage(new QWebPage());
|
||||||
|
refreshWindowTitle();
|
||||||
|
resize(800, 600);
|
||||||
|
}
|
||||||
|
|
||||||
|
BrowserDialog::~BrowserDialog()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Navigation Buttons
|
||||||
|
void BrowserDialog::on_btnBack_clicked()
|
||||||
|
{
|
||||||
|
ui->webView->back();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrowserDialog::on_btnForward_clicked()
|
||||||
|
{
|
||||||
|
ui->webView->forward();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrowserDialog::on_webView_urlChanged(const QUrl &url)
|
||||||
|
{
|
||||||
|
Q_UNUSED(url);
|
||||||
|
qDebug("urlChanged");
|
||||||
|
ui->btnBack->setEnabled(ui->webView->history()->canGoBack());
|
||||||
|
ui->btnForward->setEnabled(ui->webView->history()->canGoForward());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Window Title Magic
|
||||||
|
void BrowserDialog::refreshWindowTitle()
|
||||||
|
{
|
||||||
|
qDebug("refreshTitle");
|
||||||
|
if (m_pageTitleInWindowTitle)
|
||||||
|
setWindowTitle(m_windowTitleFormat.arg(ui->webView->title()));
|
||||||
|
else
|
||||||
|
setWindowTitle(m_windowTitleFormat);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrowserDialog::setPageTitleInWindowTitle(bool enable)
|
||||||
|
{
|
||||||
|
m_pageTitleInWindowTitle = enable;
|
||||||
|
refreshWindowTitle();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrowserDialog::setWindowTitleFormat(QString format)
|
||||||
|
{
|
||||||
|
m_windowTitleFormat = format;
|
||||||
|
refreshWindowTitle();
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrowserDialog::on_webView_titleChanged(const QString &title)
|
||||||
|
{
|
||||||
|
qDebug("titleChanged");
|
||||||
|
if (m_pageTitleInWindowTitle)
|
||||||
|
setWindowTitle(m_windowTitleFormat.arg(title));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Public access Methods
|
||||||
|
void BrowserDialog::load(const QUrl &url)
|
||||||
|
{
|
||||||
|
qDebug("load");
|
||||||
|
ui->webView->setUrl(url);
|
||||||
|
}
|
41
gui/browserdialog.h
Normal file
41
gui/browserdialog.h
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#ifndef BROWSERDIALOG_H
|
||||||
|
#define BROWSERDIALOG_H
|
||||||
|
|
||||||
|
#include <QDialog>
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class BrowserDialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
class BrowserDialog : public QDialog
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit BrowserDialog(QWidget *parent = 0);
|
||||||
|
~BrowserDialog();
|
||||||
|
|
||||||
|
void load(const QUrl &url);
|
||||||
|
|
||||||
|
void setPageTitleInWindowTitle(bool enable);
|
||||||
|
bool pageTitleInWindowTitle(void) { return m_pageTitleInWindowTitle; }
|
||||||
|
|
||||||
|
void setWindowTitleFormat(QString format);
|
||||||
|
QString windowTitleFormat(void) { return m_windowTitleFormat; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::BrowserDialog *ui;
|
||||||
|
|
||||||
|
bool m_pageTitleInWindowTitle;
|
||||||
|
QString m_windowTitleFormat;
|
||||||
|
|
||||||
|
void refreshWindowTitle(void);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void on_btnBack_clicked(void);
|
||||||
|
void on_btnForward_clicked(void);
|
||||||
|
void on_webView_urlChanged(const QUrl &url);
|
||||||
|
void on_webView_titleChanged(const QString &title);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // BROWSERDIALOG_H
|
92
gui/browserdialog.ui
Normal file
92
gui/browserdialog.ui
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>BrowserDialog</class>
|
||||||
|
<widget class="QDialog" name="BrowserDialog">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>535</width>
|
||||||
|
<height>400</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Dialog</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="toolbarLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QCommandLinkButton" name="btnBack">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Back</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="go-previous"/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCommandLinkButton" name="btnForward">
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>100</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Forward</string>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="go-next"/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="toolbarSpacer_1">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWebView" name="webView">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="url">
|
||||||
|
<url>
|
||||||
|
<string>about:blank</string>
|
||||||
|
</url>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>QWebView</class>
|
||||||
|
<extends>QWidget</extends>
|
||||||
|
<header>QtWebKitWidgets/QWebView</header>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
@ -28,6 +28,7 @@
|
|||||||
#include "gui/newinstancedialog.h"
|
#include "gui/newinstancedialog.h"
|
||||||
#include "gui/logindialog.h"
|
#include "gui/logindialog.h"
|
||||||
#include "gui/taskdialog.h"
|
#include "gui/taskdialog.h"
|
||||||
|
#include "gui/browserdialog.h"
|
||||||
|
|
||||||
#include "data/appsettings.h"
|
#include "data/appsettings.h"
|
||||||
#include "data/version.h"
|
#include "data/version.h"
|
||||||
@ -36,7 +37,7 @@
|
|||||||
|
|
||||||
MainWindow::MainWindow(QWidget *parent) :
|
MainWindow::MainWindow(QWidget *parent) :
|
||||||
QMainWindow(parent),
|
QMainWindow(parent),
|
||||||
ui(new Ui::MainWindow)
|
ui(new Ui::MainWindow)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
@ -88,12 +89,14 @@ void MainWindow::on_actionSettings_triggered()
|
|||||||
|
|
||||||
void MainWindow::on_actionReportBug_triggered()
|
void MainWindow::on_actionReportBug_triggered()
|
||||||
{
|
{
|
||||||
QDesktopServices::openUrl(QUrl("http://bugs.forkk.net/"));
|
//QDesktopServices::openUrl(QUrl("http://bugs.forkk.net/"));
|
||||||
|
openWebPage(QUrl("http://bugs.forkk.net/"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionNews_triggered()
|
void MainWindow::on_actionNews_triggered()
|
||||||
{
|
{
|
||||||
QDesktopServices::openUrl(QUrl("http://news.forkk.net/"));
|
//QDesktopServices::openUrl(QUrl("http://news.forkk.net/"));
|
||||||
|
openWebPage(QUrl("http://news.forkk.net/"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionAbout_triggered()
|
void MainWindow::on_actionAbout_triggered()
|
||||||
@ -155,3 +158,12 @@ void MainWindow::onLoginComplete(LoginResponse response)
|
|||||||
QString("Logged in as %1 with session ID %2.").
|
QString("Logged in as %1 with session ID %2.").
|
||||||
arg(response.getUsername(), response.getSessionID()));
|
arg(response.getUsername(), response.getSessionID()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BrowserDialog
|
||||||
|
void MainWindow::openWebPage(QUrl url)
|
||||||
|
{
|
||||||
|
BrowserDialog *browser = new BrowserDialog(this);
|
||||||
|
|
||||||
|
browser->load(url);
|
||||||
|
browser->exec();
|
||||||
|
}
|
||||||
|
@ -36,6 +36,9 @@ public:
|
|||||||
|
|
||||||
void closeEvent(QCloseEvent *event);
|
void closeEvent(QCloseEvent *event);
|
||||||
|
|
||||||
|
// Browser Dialog
|
||||||
|
void openWebPage(QUrl url);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_actionAbout_triggered();
|
void on_actionAbout_triggered();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user