Work on GUI updater.
This commit is contained in:
parent
7be1c7e1ac
commit
3bbdbb1920
@ -458,7 +458,6 @@ set(APP_TEXT
|
||||
resources/text/COPYING_GNU_GPL
|
||||
resources/text/COPYING_GNU_GPL_HTML
|
||||
resources/text/COPYING_BSD
|
||||
resources/text/AUTHORS
|
||||
)
|
||||
|
||||
# Setup source & header files for "rssguard_updater".
|
||||
|
@ -1,10 +0,0 @@
|
||||
<body>
|
||||
Authors and contributors:
|
||||
<ul>
|
||||
<li>Martin Rotter <<a href=\"mailto://rotter.martinos@gmail.com\">rotter.martinos@gmail.com</a>> (author of RSS Guard)</li>
|
||||
<li>snakebite & tiheum (authors of KFaenza/Faenza icon theme)</li>
|
||||
<li>Digia Plc (author of QtSingleApplication component)</li>
|
||||
<li>Artem Galichkin <<a href=\"mailto://doomer3d@gmail.com\">doomer3d@gmail.com</a>> (author of original QKeySequenceWidget component)</li>
|
||||
<li>Elbert Pol (OS/2 packages maintainer & tester).</li>
|
||||
</ul>
|
||||
</body>
|
@ -67,16 +67,6 @@ FormAbout::FormAbout(QWidget *parent) : QDialog(parent), m_ui(new Ui::FormAbout)
|
||||
}
|
||||
file.close();
|
||||
|
||||
file.setFileName(APP_INFO_PATH + "/AUTHORS");
|
||||
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||
m_ui->m_txtThanks->setText(text_stream.readAll());
|
||||
}
|
||||
else {
|
||||
//: File containing list of authors was not found.
|
||||
m_ui->m_txtThanks->setText(tr("Authors information not found."));
|
||||
}
|
||||
file.close();
|
||||
|
||||
file.setFileName(APP_INFO_PATH + "/CHANGELOG");
|
||||
if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||
m_ui->m_txtChangelog->setText(text_stream.readAll());
|
||||
|
@ -132,8 +132,8 @@
|
||||
<string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string>
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html></string>
|
||||
</property>
|
||||
<property name="acceptRichText">
|
||||
<bool>false</bool>
|
||||
@ -157,7 +157,7 @@ p, li { white-space: pre-wrap; }
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QToolBox" name="toolBox">
|
||||
<widget class="QToolBox" name="m_toolBox">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
@ -166,12 +166,12 @@ p, li { white-space: pre-wrap; }
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>67</width>
|
||||
<height>66</height>
|
||||
<width>685</width>
|
||||
<height>184</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="label">
|
||||
<string>GNU GPL License (applies to RSS Guard source code)</string>
|
||||
@ -180,7 +180,16 @@ p, li { white-space: pre-wrap; }
|
||||
<string>GNU GPL License</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<property name="margin">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
@ -215,8 +224,8 @@ p, li { white-space: pre-wrap; }
|
||||
<string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'DejaVu Sans Mono'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif';"><br /></p></body></html></string>
|
||||
</style></head><body style=" font-family:'DejaVu Sans Mono'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html></string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
@ -233,15 +242,24 @@ p, li { white-space: pre-wrap; }
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>85</width>
|
||||
<height>66</height>
|
||||
<width>98</width>
|
||||
<height>69</height>
|
||||
</rect>
|
||||
</property>
|
||||
<attribute name="label">
|
||||
<string>BSD License (applies to QtSingleApplication source code)</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<property name="margin">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
@ -276,8 +294,8 @@ p, li { white-space: pre-wrap; }
|
||||
<string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'DejaVu Sans Mono'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif';"><br /></p></body></html></string>
|
||||
</style></head><body style=" font-family:'DejaVu Sans Mono'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html></string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
@ -300,49 +318,6 @@ p, li { white-space: pre-wrap; }
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="m_tabThanks">
|
||||
<attribute name="title">
|
||||
<string>Thanks to</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="m_txtThanks">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="undoRedoEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="html">
|
||||
<string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string>
|
||||
</property>
|
||||
<property name="tabStopWidth">
|
||||
<number>30</number>
|
||||
</property>
|
||||
<property name="acceptRichText">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="m_lblThanks">
|
||||
<property name="text">
|
||||
<string>Thanks to page is available only in English language.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="m_tabChangelog">
|
||||
<attribute name="title">
|
||||
<string>Changelog</string>
|
||||
@ -360,8 +335,8 @@ p, li { white-space: pre-wrap; }
|
||||
<string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string>
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans Serif'; font-size:9pt;"><br /></p></body></html></string>
|
||||
</property>
|
||||
<property name="acceptRichText">
|
||||
<bool>false</bool>
|
||||
|
@ -18,10 +18,10 @@
|
||||
#ifndef FORMSTANDARDFEEDDETAILS_H
|
||||
#define FORMSTANDARDFEEDDETAILS_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
#include "ui_formfeeddetails.h"
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
|
||||
namespace Ui {
|
||||
class FormFeedDetails;
|
||||
|
@ -18,14 +18,14 @@
|
||||
#ifndef FORMUPDATE_H
|
||||
#define FORMUPDATE_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QPushButton>
|
||||
#include <QNetworkReply>
|
||||
|
||||
#include "ui_formupdate.h"
|
||||
|
||||
#include "miscellaneous/systemfactory.h"
|
||||
|
||||
#include <QDialog>
|
||||
#include <QPushButton>
|
||||
#include <QNetworkReply>
|
||||
|
||||
|
||||
namespace Ui {
|
||||
class FormUpdate;
|
||||
|
@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>607</width>
|
||||
<height>322</height>
|
||||
<height>366</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@ -71,8 +71,8 @@
|
||||
<string notr="true"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p></body></html></string>
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p></body></html></string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
|
@ -1,6 +1,7 @@
|
||||
#include "updater/formupdater.h"
|
||||
|
||||
#include "definitions/definitions.h"
|
||||
#include "qtsingleapplication/qtsingleapplication.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QDesktopWidget>
|
||||
@ -12,15 +13,24 @@
|
||||
#include <QVBoxLayout>
|
||||
#include <QKeyEvent>
|
||||
#include <QProcess>
|
||||
#include <QProcessEnvironment>
|
||||
#include <QScrollBar>
|
||||
|
||||
|
||||
FormUpdater::FormUpdater(QWidget *parent)
|
||||
: QMainWindow(parent),
|
||||
m_state(NoState),
|
||||
m_txtOutput(new QTextEdit(this)) {
|
||||
m_txtOutput(new QTextEdit(this)),
|
||||
m_parsedArguments(QHash<QString, QString>()) {
|
||||
|
||||
m_txtOutput->setFontPointSize(10.0);
|
||||
m_txtOutput->setReadOnly(true);
|
||||
m_txtOutput->setFocusPolicy(Qt::NoFocus);
|
||||
m_txtOutput->setFocusPolicy(Qt::StrongFocus);
|
||||
m_txtOutput->setContextMenuPolicy(Qt::DefaultContextMenu);
|
||||
m_txtOutput->setTextInteractionFlags(Qt::TextSelectableByMouse |
|
||||
Qt::TextSelectableByKeyboard |
|
||||
Qt::LinksAccessibleByKeyboard |
|
||||
Qt::LinksAccessibleByMouse);
|
||||
|
||||
setCentralWidget(m_txtOutput);
|
||||
setWindowTitle("RSS Guard updater");
|
||||
@ -32,20 +42,131 @@ FormUpdater::~FormUpdater() {
|
||||
}
|
||||
|
||||
void FormUpdater::startUpgrade() {
|
||||
m_txtOutput->append("Welcome to RSS Guard updater.");
|
||||
printHeading("Welcome to RSS Guard updater");
|
||||
|
||||
printText("Analyzing updater arguments...");
|
||||
|
||||
if (QApplication::arguments().size() != 5) {
|
||||
m_txtOutput->append("Insufficient arguments passed. Update process cannot proceed.");
|
||||
m_txtOutput->append("Press any key to exit updater...");
|
||||
printText("Insufficient arguments passed. Update process cannot proceed.");
|
||||
printText("\nPress any key to exit updater...");
|
||||
|
||||
m_state = ExitError;
|
||||
// Ted je nastavenej state a pri keyPressEvent se appka ukonci
|
||||
return;
|
||||
}
|
||||
|
||||
// do datovejch memberu teto tridy ulozit argumenty a pokracovat
|
||||
// Obtain parameters.
|
||||
QStringList arguments = QApplication::arguments();
|
||||
|
||||
m_parsedArguments["updater_path"] = QDir::toNativeSeparators(qApp->applicationFilePath());
|
||||
m_parsedArguments["current_version"] = arguments.at(1);
|
||||
m_parsedArguments["next_version"] = arguments.at(2);
|
||||
m_parsedArguments["rssguard_executable_path"] = QDir::toNativeSeparators(arguments.at(3));
|
||||
m_parsedArguments["rssguard_path"] = QDir::toNativeSeparators(QFileInfo(m_parsedArguments["rssguard_executable_path"]).absolutePath());
|
||||
m_parsedArguments["update_file_path"] = QDir::toNativeSeparators(arguments.at(4));
|
||||
m_parsedArguments["temp_path"] = QDir::toNativeSeparators(QFileInfo(m_parsedArguments["update_file_path"]).absolutePath());
|
||||
m_parsedArguments["output_temp_path"] = m_parsedArguments["temp_path"] + QDir::separator() + APP_LOW_NAME;
|
||||
|
||||
printArguments();
|
||||
|
||||
if (!printUpdateInformation()) {
|
||||
printText("Update file does not exist or is corrupted.");
|
||||
printText("\nPress any key to exit updater...");
|
||||
|
||||
m_state = ExitError;
|
||||
return;
|
||||
}
|
||||
|
||||
doPreparationCleanup();
|
||||
doExtractionAndCopying();
|
||||
}
|
||||
|
||||
void FormUpdater::printArguments() {
|
||||
printNewline();
|
||||
printHeading("Arguments");
|
||||
|
||||
printText(QString("Updater executable file:\n -> %1").arg(m_parsedArguments["updater_path"]));
|
||||
printText(QString("Application executable file:\n -> %1").arg(m_parsedArguments["rssguard_executable_path"]));
|
||||
printText(QString("Temp folder:\n -> %1").arg(m_parsedArguments["temp_path"]));
|
||||
printText(QString("Application temp folder:\n -> %1").arg(m_parsedArguments["output_temp_path"]));
|
||||
}
|
||||
|
||||
bool FormUpdater::printUpdateInformation() {
|
||||
bool update_file_exists = QFile::exists(m_parsedArguments["update_file_path"]);
|
||||
|
||||
printNewline();
|
||||
printHeading("Update information");
|
||||
|
||||
printText(QString("Version change:\n -> %1 --> %2").arg(m_parsedArguments["current_version"], m_parsedArguments["next_version"]));
|
||||
printText(QString("Update file:\n -> %1").arg(m_parsedArguments["update_file_path"]));
|
||||
printText(QString("Update file exists:\n -> %1").arg(update_file_exists ? "yes" : "no"));
|
||||
printText(QString("Update file size:\n -> %1 bytes").arg(QFileInfo(m_parsedArguments["update_file_path"]).size()));
|
||||
|
||||
return update_file_exists;
|
||||
}
|
||||
|
||||
bool FormUpdater::doPreparationCleanup() {
|
||||
printNewline();
|
||||
printHeading("Initial cleanup");
|
||||
|
||||
// Check if main RSS Guard instance is running.
|
||||
if (static_cast<QtSingleApplication*>(qApp)->sendMessage(APP_QUIT_INSTANCE)) {
|
||||
printText("The main application is running. Quitting it.");
|
||||
}
|
||||
else {
|
||||
printText("The main application is not running.");
|
||||
}
|
||||
|
||||
// Remove old folders.
|
||||
if (QDir(m_parsedArguments["output_temp_path"]).exists()) {
|
||||
if (!removeDirectory(m_parsedArguments["output_temp_path"])) {
|
||||
printText("Cleanup of old temporary files failed.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!removeDirectory(m_parsedArguments["rssguard_path"],
|
||||
QStringList() << APP_7ZA_EXECUTABLE,
|
||||
QStringList() << "data")) {
|
||||
printText("Full cleanup of actual RSS Guard installation failed.");
|
||||
printText("Some files from old installation may persist.");
|
||||
}
|
||||
|
||||
if (!QFile::rename(m_parsedArguments["updater_path"], m_parsedArguments["updater_path"] + ".old")) {
|
||||
qDebug("Updater executable was not renamed and it will not be updated.");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool FormUpdater::doExtractionAndCopying() {
|
||||
QStringList extractor_arguments;
|
||||
|
||||
extractor_arguments << "x" << m_parsedArguments["update_file_path"] << "-r" <<
|
||||
"-y" << QString("-o%1").arg(m_parsedArguments["output_temp_path"]);
|
||||
|
||||
QProcess process_extractor(this);
|
||||
process_extractor.setEnvironment(QProcessEnvironment::systemEnvironment().toStringList());
|
||||
process_extractor.setProcessChannelMode(QProcess::MergedChannels);
|
||||
process_extractor.start(APP_7ZA_EXECUTABLE, extractor_arguments);
|
||||
|
||||
if (process_extractor.waitForFinished()) {
|
||||
printText("Extraction of update files failed.");
|
||||
return false;
|
||||
}
|
||||
|
||||
printText("Extraction done successfully.");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void FormUpdater::keyPressEvent(QKeyEvent* event) {
|
||||
if (event->matches(QKeySequence::Copy)) {
|
||||
event->accept();
|
||||
return;
|
||||
}
|
||||
else {
|
||||
event->ignore();
|
||||
}
|
||||
|
||||
switch (m_state) {
|
||||
case NoState:
|
||||
@ -63,8 +184,22 @@ void FormUpdater::keyPressEvent(QKeyEvent* event) {
|
||||
}
|
||||
}
|
||||
|
||||
void FormUpdater::printHeading(const QString &header) {
|
||||
m_txtOutput->setAlignment(Qt::AlignCenter);
|
||||
m_txtOutput->append(QString("****** %1 ******\n").arg(header));
|
||||
}
|
||||
|
||||
void FormUpdater::printText(const QString &text) {
|
||||
m_txtOutput->setAlignment(Qt::AlignLeft);
|
||||
m_txtOutput->append(text);
|
||||
}
|
||||
|
||||
void FormUpdater::printNewline() {
|
||||
m_txtOutput->append("\n");
|
||||
}
|
||||
|
||||
void FormUpdater::moveToCenterAndResize() {
|
||||
resize(500, 400);
|
||||
resize(600, 400);
|
||||
move(qApp->desktop()->screenGeometry().center() - rect().center());
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,8 @@
|
||||
|
||||
#include <QMainWindow>
|
||||
|
||||
#include <QHash>
|
||||
|
||||
|
||||
class QTextEdit;
|
||||
class QKeyEvent;
|
||||
@ -22,11 +24,18 @@ class FormUpdater : public QMainWindow {
|
||||
virtual ~FormUpdater();
|
||||
|
||||
void startUpgrade();
|
||||
void printArguments();
|
||||
bool printUpdateInformation();
|
||||
bool doPreparationCleanup();
|
||||
bool doExtractionAndCopying();
|
||||
|
||||
protected:
|
||||
void keyPressEvent(QKeyEvent *event);
|
||||
|
||||
private:
|
||||
void printText(const QString &text);
|
||||
void printNewline();
|
||||
void printHeading(const QString &header);
|
||||
void moveToCenterAndResize();
|
||||
|
||||
// File/directory manipulators.
|
||||
@ -39,8 +48,7 @@ class FormUpdater : public QMainWindow {
|
||||
UpdaterState m_state;
|
||||
QTextEdit *m_txtOutput;
|
||||
|
||||
QString m_rssguardExecutablePath;
|
||||
|
||||
QHash<QString, QString> m_parsedArguments;
|
||||
};
|
||||
|
||||
#endif // FORMUPDATER_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user