Skip to content
Snippets Groups Projects

QDS-10801 Switch from widget based UI to QML based UI

Merged Burak Hançerli requested to merge QDS-10801/add-qml-ui into master
8 files
+ 188
89
Compare changes
  • Side-by-side
  • Inline
Files
8
@@ -39,11 +39,9 @@
void DvAndroid::printLog(const QString &log)
{
QDateTime now = QDateTime::currentDateTime();
QString time = now.toString("hh:mm:ss");
m_logs->setText(m_logs->text() + "\n" + time + " >> " + log);
qDebug() << log;
m_logs += log + "\n";
emit logsChanged();
}
void DvAndroid::printWarn(const QString &warn)
@@ -103,50 +101,6 @@ QSharedPointer<QNetworkReply> DvAndroid::fetchResource(const QString &url)
return reply;
}
void DvAndroid::setupUi()
{
m_mainWindow.setLayout(m_layout);
// setup UI layout
m_layout->addWidget(m_logo);
m_layout->addWidget(m_buildInfo);
m_layout->addWidget(m_logs);
m_layout->addWidget(m_scrollArea);
m_layout->addWidget(m_lineEdit);
m_layout->addWidget(m_button);
// show build info
QString buildInfo = "Qt Design Viewer for Android\n" + QCoreApplication::applicationVersion()
+ "\n" + "Built with Qt " + QString(QT_VERSION_STR) + "\n"
+ "OpenSSL support: " + QVariant(QSslSocket::supportsSsl()).toString();
m_buildInfo->setText(buildInfo);
m_buildInfo->setAlignment(Qt::AlignHCenter);
// configure logs area
m_logs->setWordWrap(true);
// configure scrollarea for the logs
m_scrollArea->setWidget(m_logs);
m_scrollArea->setWidgetResizable(true);
QObject::connect(m_scrollArea->verticalScrollBar(), &QScrollBar::rangeChanged, this, [&]() {
m_scrollArea->verticalScrollBar()->setSliderPosition(
m_scrollArea->verticalScrollBar()->maximum());
});
// configure line edit
m_lineEdit->setPlaceholderText("Enter project URL here");
m_lineEdit->setText(
"https://designviewer.qt.io/#17e8907b3b84b8206d45be4f551f4e25/TestTwo.qmlrc");
// configure the button
m_button->setText("Download and run project");
QObject::connect(m_button, &QPushButton::clicked, this, &DvAndroid::fetchAndRunProject);
// start the show
m_mainWindow.showMaximized();
}
void DvAndroid::printSysInfo()
{
const QRect screenGeometry = QGuiApplication::primaryScreen()->geometry();
@@ -159,44 +113,23 @@ void DvAndroid::printSysInfo()
printLog("-- Screen width: " + QSTRN(screenGeometry.width()));
}
void DvAndroid::updateLogo()
{
printLog("Fetching logo...");
m_logo->setText("Fetching logo...");
auto logoReply = fetchResource("https://designviewer.qt.io/qtdesignstudioviewer-256.png");
if (logoReply->error() != QNetworkReply::NoError) {
printErr("Could not fetch logo");
m_logo->setText("Could not fetch logo");
return;
}
QByteArray data = logoReply->readAll();
QPixmap pixmap;
pixmap.loadFromData(data);
m_logo->setPixmap(pixmap);
m_logo->setAlignment(Qt::AlignCenter);
printLog("Logo fetched successfully");
}
bool DvAndroid::initialize()
{
printLog("Initializing Qt Design Viewer...");
setupUi();
printSysInfo();
updateLogo();
m_buildInfo = QCoreApplication::applicationVersion() + "\n" + "Qt " + QString(QT_VERSION_STR)
+ "\n" + "OpenSSL support: " + QVariant(QSslSocket::supportsSsl()).toString();
emit buildInfoChanged();
printLog("Initialization complete");
return true;
}
void DvAndroid::fetchAndRunProject()
void DvAndroid::downloadAndRun(const QString &url)
{
printLog("=========================");
printLog("Fetching a new project...");
QString projectUrl = m_lineEdit->text();
QString projectUrl = url;
if (projectUrl.startsWith("https://designviewer.qt.io/#")) {
projectUrl = projectUrl.split("#").at(1);
projectUrl.prepend("https://designviewer.qt.io/qmlprojects/");
@@ -208,7 +141,7 @@ void DvAndroid::fetchAndRunProject()
return;
}
if (!runProject(reply->readAll(), QFileInfo(m_lineEdit->text()).baseName())) {
if (!runProject(reply->readAll(), QFileInfo(url).baseName())) {
printErr("Could not run project");
return;
}
@@ -263,8 +196,6 @@ void DvAndroid::showAppWindow()
printLog("Initializing and showing the QML app window");
m_quickWindow->show();
m_mainWindow.hide();
QObject::connect(m_quickWindow.data(), &QQuickWindow::closing, &m_mainWindow, &QWidget::show);
}
#endif // !defined(Q_OS_WASM)
Loading