diff --git a/gui/spkabout.cpp b/gui/spkabout.cpp
index 45ebdb9..c4a9505 100644
--- a/gui/spkabout.cpp
+++ b/gui/spkabout.cpp
@@ -1,18 +1,56 @@
+#include "gitver.h"
#include "spkabout.h"
SpkAbout::SpkAbout(QWidget *parent) : SpkDialog(parent)
{
setWindowModality(Qt::ApplicationModal);
+
+ mIconLay = new QHBoxLayout;
+
+ mSpkVersion = new QLabel;
+ mSpkVersion->setText(tr("
Spark Store
"
+ "Version %1
"
+ "Code committed on (%2)
"
+ "Built on %3 %4")
+ .arg(GitVer::DescribeTags())
+ .arg(GitVer::CommitDate())
+ .arg(__DATE__)
+ .arg(__TIME__));
+
+ mSpkIcon = new QLabel;
+ mSpkIcon->setPixmap(QIcon(":/icons/spark-store.svg").pixmap(QSize(128, 128)));
+
+ QFile lipsum(":/info/lipsum.txt");
+ lipsum.open(QFile::ReadOnly);
+ mDescriptionText = new QLabel;
+ mDescriptionText->setText(lipsum.readAll());
+ lipsum.close();
+
+ mIconLay->addWidget(mSpkIcon);
+ mIconLay->addWidget(mSpkVersion);
+ mIconLay->setAlignment(Qt::AlignVCenter);
+ AddLayout(mIconLay);
+ AddSpacing(18);
+ AddWidget(mDescriptionText);
+ SetMargin(18);
+
+ GetTitleBar()->SetOperationButton(SpkTitleBar::OperationButton::Close);
+ GetTitleBar()->SetTitle(tr("About Spark Store"));
+}
+
+SpkAbout::~SpkAbout()
+{
+// delete mIconLay;
+// delete mDescriptionText;
}
void SpkAbout::Show()
{
SpkAbout *b = new SpkAbout;
- b->GetTitleBar()->SetOperationButton(SpkTitleBar::OperationButton::Close);
- // TODO: Waiting for qygw
+
b->Exec();
delete b;
diff --git a/gui/spkdialog.cpp b/gui/spkdialog.cpp
index f995c29..61b9502 100644
--- a/gui/spkdialog.cpp
+++ b/gui/spkdialog.cpp
@@ -59,16 +59,29 @@ void SpkDialog::AddButton(QString text, SpkUi::SpkButtonStyle style)
void SpkDialog::AddWidget(QWidget *w)
{
+ // Adding a widget does not take the ownership.
mWidgetsVLay->addWidget(w);
mWidgetsList << w;
mParentsList << w->parentWidget();
}
+void SpkDialog::AddLayout(QLayout *w)
+{
+ mWidgetsVLay->addLayout(w);
+ mWidgetsList << w;
+ mParentsList << w->parentWidget();
+}
+
void SpkDialog::AddSpacing(int a)
{
mWidgetsVLay->addSpacing(a);
}
+void SpkDialog::SetMargin(int a)
+{
+ mWidgetsVLay->setMargin(a);
+}
+
int SpkDialog::Exec()
{
QEventLoop loop;
diff --git a/gui/spktitlebar.cpp b/gui/spktitlebar.cpp
index 35c663b..a789e43 100644
--- a/gui/spktitlebar.cpp
+++ b/gui/spktitlebar.cpp
@@ -25,7 +25,7 @@ SpkTitleBar::SpkTitleBar(QWidget *parent) : QWidget(parent)
mMainLayout->setSpacing(8);
mBtnGroup->setSpacing(0);
- mMainLayout->addSpacing(8);
+ mMainLayout->addSpacing(12);
mMainLayout->addWidget(mIcon);
mMainLayout->addWidget(mTitle);
mMainLayout->addLayout(mUserSpace);
diff --git a/gui/spkwindow.cpp b/gui/spkwindow.cpp
index dcca330..0aade80 100644
--- a/gui/spkwindow.cpp
+++ b/gui/spkwindow.cpp
@@ -14,6 +14,7 @@
SpkWindow::SpkWindow(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags)
{
+ mUseCustomEvents = SpkUi::DtkPlugin == nullptr; // Put to the front, to prevent warnings
if(SpkUi::DtkPlugin && !qgetenv("SPARK_NO_DXCB").toInt())
SpkUi::DtkPlugin->addWindow(this, parent); // Register window to DXcb so we got Deepin
else
@@ -24,7 +25,6 @@ SpkWindow::SpkWindow(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(paren
mMoving = mResizing = false;
mCloseHook = nullptr;
mMaximized = windowState().testFlag(Qt::WindowMaximized);
- mUseCustomEvents = SpkUi::DtkPlugin == nullptr;
PopulateUi();
}
@@ -225,6 +225,20 @@ void SpkWindow::closeEvent(QCloseEvent *e)
emit Closed();
}
+void SpkWindow::paintEvent(QPaintEvent *e)
+{
+ //FIXME: DOESN'T WORK!
+// QPainter painter(this);
+// painter.setBrush(QBrush(Qt::NoBrush));
+// painter.setPen(QPen(SpkUi::ColorLine));
+// QRect rect = this->rect();
+// rect.setWidth(rect.width() - 2);
+// rect.setHeight(rect.height() - 2);
+// rect.adjust(-1, -1, 1, 1);
+// painter.drawRect(rect);
+// QWidget::paintEvent(e);
+}
+
void SpkWindow::SetCornerRadius(int radius)
{
mCornerRadius = radius;
diff --git a/inc/spkabout.h b/inc/spkabout.h
index 7565e1a..c3c9cf8 100644
--- a/inc/spkabout.h
+++ b/inc/spkabout.h
@@ -1,11 +1,21 @@
#pragma once
+#include
+#include
+#include
#include "spkdialog.h"
class SpkAbout : public SpkDialog
{
public:
SpkAbout(QWidget* parent = nullptr);
- void Show();
+ ~SpkAbout();
+ static void Show();
+
+ private:
+ QHBoxLayout *mIconLay;
+ QLabel *mSpkIcon;
+ QLabel *mSpkVersion;
+ QLabel *mDescriptionText;
};
diff --git a/inc/spkdialog.h b/inc/spkdialog.h
index 1c0ce1f..79e1a9d 100644
--- a/inc/spkdialog.h
+++ b/inc/spkdialog.h
@@ -15,7 +15,9 @@ class SpkDialog : public SpkWindow
~SpkDialog();
void AddButton(QString text, SpkUi::SpkButtonStyle style = SpkUi::SpkButtonStyle::Normal);
void AddWidget(QWidget*);
+ void AddLayout(QLayout*);
void AddSpacing(int);
+ void SetMargin(int);
int Exec();
private slots:
@@ -31,5 +33,5 @@ class SpkDialog : public SpkWindow
QVBoxLayout *mMainVLay, *mWidgetsVLay;
QHBoxLayout *mBtnLay;
QButtonGroup *mBtnGroup;
- QList mWidgetsList, mParentsList;
+ QList mWidgetsList, mParentsList;
};
diff --git a/inc/spkmainwindow.h b/inc/spkmainwindow.h
index e49fc7f..df80de7 100644
--- a/inc/spkmainwindow.h
+++ b/inc/spkmainwindow.h
@@ -17,6 +17,11 @@ class QNetworkReply;
namespace SpkUi
{
+ enum SpkStackedPages
+ {
+ PgQssTest // Must be at last
+ };
+
class SpkSidebarSelector : public QObject
{
Q_OBJECT
diff --git a/inc/spkstore.h b/inc/spkstore.h
index a3fce4b..60aeb56 100644
--- a/inc/spkstore.h
+++ b/inc/spkstore.h
@@ -35,5 +35,5 @@ class SpkStore : public QObject
SpkLogger *mLogger;
SpkMainWindow *mMainWindow = nullptr;
QNetworkAccessManager *mNetMgr = nullptr;
- QString mDistroName, mApiRequestUrl, mUserAgentStr;
+ QString mDistroName, mApiRequestUrl, mUserAgentStr, mConfigPath;
};
diff --git a/inc/spkwindow.h b/inc/spkwindow.h
index fb0dabe..b3e4706 100644
--- a/inc/spkwindow.h
+++ b/inc/spkwindow.h
@@ -59,7 +59,7 @@ class SpkWindow : public QMainWindow
void SetMouseCursor(Qt::Edges);
void ResizeWindowByCursor(QPoint);
void closeEvent(QCloseEvent *) override;
-// void paintEvent(QPaintEvent *) override;
+ void paintEvent(QPaintEvent *) override;
private:
void PopulateUi();
diff --git a/src/main.cpp b/src/main.cpp
index 7039f12..cf72fb9 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -4,6 +4,8 @@
#include "spkui_general.h"
#include "spkstore.h"
+#include "spkabout.h"
+
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
@@ -12,5 +14,7 @@ int main(int argc, char *argv[])
SpkStore store(false, LogPath);
+ SpkAbout::Show();
+
return QApplication::exec();
}
diff --git a/src/spkstore.cpp b/src/spkstore.cpp
index 07df5d6..d7454d6 100644
--- a/src/spkstore.cpp
+++ b/src/spkstore.cpp
@@ -26,10 +26,11 @@ SpkStore::SpkStore(bool aCli, QString &aLogPath)
mConfigPath = QDir::homePath() + "/.config/spark-store/config"; //TODO: flexible config via CLI
if(QFileInfo(mConfigPath).exists())
- mCfg = new QSettings(QDir::homePath() + "/.config/spark-store/config", QSettings::IniFormat);
+ mCfg = new QSettings(QDir::homePath() + "/.config/spark-store/config", QSettings::IniFormat,
+ this);
else
{
- mCfg = new QSettings(":/info/default_config", QSettings::IniFormat);
+ mCfg = new QSettings(":/info/default_config", QSettings::IniFormat, this);
#if 0
bool cfgDirOk;
if(!qgetenv("SPARK_NO_INSTALL_CONFIG").toInt())