forked from qt-creator/qt-creator
StudioWelcome: Enable integrating download progress
Change-Id: Iad18c1a0bc49f87a98dcdff46542cf4c373de875 Reviewed-by: Henning Gründl <henning.gruendl@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
@@ -45,7 +45,7 @@ using namespace Utils;
|
|||||||
|
|
||||||
ExampleCheckout::ExampleCheckout(QObject *) {}
|
ExampleCheckout::ExampleCheckout(QObject *) {}
|
||||||
|
|
||||||
void ExampleCheckout::checkoutExample(const QUrl &url)
|
void ExampleCheckout::registerTypes()
|
||||||
{
|
{
|
||||||
FileDownloader::registerQmlType();
|
FileDownloader::registerQmlType();
|
||||||
static bool once = []() {
|
static bool once = []() {
|
||||||
@@ -55,6 +55,11 @@ void ExampleCheckout::checkoutExample(const QUrl &url)
|
|||||||
}();
|
}();
|
||||||
|
|
||||||
QTC_ASSERT(once, ;);
|
QTC_ASSERT(once, ;);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ExampleCheckout::checkoutExample(const QUrl &url, const QString &tempFile, const QString &completeBaseFileName)
|
||||||
|
{
|
||||||
|
registerTypes();
|
||||||
|
|
||||||
m_dialog.reset(new QDialog(Core::ICore::dialogParent()));
|
m_dialog.reset(new QDialog(Core::ICore::dialogParent()));
|
||||||
m_dialog->setModal(true);
|
m_dialog->setModal(true);
|
||||||
@@ -80,6 +85,8 @@ void ExampleCheckout::checkoutExample(const QUrl &url)
|
|||||||
QTC_ASSERT(rootObject, qWarning() << "QML error"; return );
|
QTC_ASSERT(rootObject, qWarning() << "QML error"; return );
|
||||||
|
|
||||||
rootObject->setProperty("url", url);
|
rootObject->setProperty("url", url);
|
||||||
|
rootObject->setProperty("tempFile", tempFile);
|
||||||
|
rootObject->setProperty("completeBaseName", completeBaseFileName);
|
||||||
|
|
||||||
m_dialog->show();
|
m_dialog->show();
|
||||||
|
|
||||||
@@ -260,6 +267,7 @@ void FileExtractor::setSourceFile(QString &sourceFilePath)
|
|||||||
void FileExtractor::setArchiveName(QString &filePath)
|
void FileExtractor::setArchiveName(QString &filePath)
|
||||||
{
|
{
|
||||||
m_archiveName = filePath;
|
m_archiveName = filePath;
|
||||||
|
emit targetFolderExistsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString FileExtractor::detailedText()
|
const QString FileExtractor::detailedText()
|
||||||
|
@@ -43,18 +43,21 @@ class ExampleCheckout : public QObject
|
|||||||
public:
|
public:
|
||||||
explicit ExampleCheckout(QObject *parent = nullptr);
|
explicit ExampleCheckout(QObject *parent = nullptr);
|
||||||
|
|
||||||
Q_INVOKABLE void checkoutExample(const QUrl &url);
|
Q_INVOKABLE void checkoutExample(const QUrl &url, const QString &tempFile, const QString &completeBaseFileName);
|
||||||
|
|
||||||
QString extractionFolder() const;
|
QString extractionFolder() const;
|
||||||
|
|
||||||
~ExampleCheckout();
|
~ExampleCheckout();
|
||||||
|
|
||||||
|
static void registerTypes();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void handleCancel();
|
void handleCancel();
|
||||||
void handleAccepted();
|
void handleAccepted();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void finishedSucessfully();
|
void finishedSucessfully();
|
||||||
|
void progressChanged(int);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<QDialog> m_dialog;
|
std::unique_ptr<QDialog> m_dialog;
|
||||||
|
@@ -45,15 +45,18 @@ Rectangle {
|
|||||||
signal canceled
|
signal canceled
|
||||||
signal accepted
|
signal accepted
|
||||||
|
|
||||||
|
property string tempFile
|
||||||
|
property string completeBaseName
|
||||||
|
|
||||||
StackLayout {
|
StackLayout {
|
||||||
id: stackLayout
|
id: stackLayout
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
currentIndex: 0
|
currentIndex: root.tempFile.length === 0 ? 0 : 1
|
||||||
|
|
||||||
FileExtractor {
|
FileExtractor {
|
||||||
id: fileExtractor
|
id: fileExtractor
|
||||||
sourceFile: downloader.tempFile
|
archiveName: root.completeBaseName.length === 0 ? downloader.completeBaseName : root.completeBaseName
|
||||||
archiveName: downloader.completeBaseName
|
sourceFile: root.tempFile.length === 0 ? downloader.tempFile : root.tempFile
|
||||||
}
|
}
|
||||||
|
|
||||||
FileDownloader {
|
FileDownloader {
|
||||||
|
@@ -231,11 +231,13 @@ public:
|
|||||||
Q_INVOKABLE void openExample(const QString &example,
|
Q_INVOKABLE void openExample(const QString &example,
|
||||||
const QString &formFile,
|
const QString &formFile,
|
||||||
const QString &url,
|
const QString &url,
|
||||||
const QString &explicitQmlproject)
|
const QString &explicitQmlproject,
|
||||||
|
const QString &tempFile,
|
||||||
|
const QString &completeBaseName)
|
||||||
{
|
{
|
||||||
if (!url.isEmpty()) {
|
if (!url.isEmpty()) {
|
||||||
ExampleCheckout *checkout = new ExampleCheckout;
|
ExampleCheckout *checkout = new ExampleCheckout;
|
||||||
checkout->checkoutExample(QUrl::fromUserInput(url));
|
checkout->checkoutExample(QUrl::fromUserInput(url), tempFile, completeBaseName);
|
||||||
connect(checkout,
|
connect(checkout,
|
||||||
&ExampleCheckout::finishedSucessfully,
|
&ExampleCheckout::finishedSucessfully,
|
||||||
this,
|
this,
|
||||||
@@ -631,6 +633,7 @@ WelcomeMode::WelcomeMode()
|
|||||||
setContext(Core::Context(Core::Constants::C_WELCOME_MODE));
|
setContext(Core::Context(Core::Constants::C_WELCOME_MODE));
|
||||||
|
|
||||||
QFontDatabase::addApplicationFont(":/studiofonts/TitilliumWeb-Regular.ttf");
|
QFontDatabase::addApplicationFont(":/studiofonts/TitilliumWeb-Regular.ttf");
|
||||||
|
ExampleCheckout::registerTypes();
|
||||||
|
|
||||||
m_modeWidget = new QQuickWidget;
|
m_modeWidget = new QQuickWidget;
|
||||||
m_modeWidget->setMinimumSize(1024, 768);
|
m_modeWidget->setMinimumSize(1024, 768);
|
||||||
|
Reference in New Issue
Block a user