diff --git a/Site/BaseFront/Front/src/infoblock.cpp b/Site/BaseFront/Front/src/infoblock.cpp
index 5c47873..bfb2e29 100644
--- a/Site/BaseFront/Front/src/infoblock.cpp
+++ b/Site/BaseFront/Front/src/infoblock.cpp
@@ -17,6 +17,22 @@ QString InfoBlock::bakcBroundPicture() const {
return m_bakcBroundPicture;
}
+QString InfoBlock::linkName(int index) const {
+ return m_links.value(index).name;
+}
+
+QString InfoBlock::linkAddress(int index) const {
+ return m_links.value(index).link;
+}
+
+int InfoBlock::linksCount() const {
+ return m_links.size();
+}
+
+void InfoBlock::setLinks(const QList &links) {
+ m_links = links;
+}
+
void InfoBlock::setTitle(QString title) {
if (m_title == title)
return;
@@ -33,7 +49,7 @@ void InfoBlock::setSourceText(QString sourceText) {
emit sourceTextChanged(m_sourceText);
}
-void InfoBlock::setBakcBroundPicture(QString bakcBroundPicture) {
+void InfoBlock::setBakcgroundPicture(QString bakcBroundPicture) {
if (m_bakcBroundPicture == bakcBroundPicture)
return;
@@ -45,4 +61,9 @@ uint qHash(const InfoBlock &obj) {
return qHash(obj.title() + obj.sourceText() + obj.bakcBroundPicture());
}
+Link::Link(const QString &name, const QString &link) {
+ this->name = name;
+ this->link = link;
+}
+
}
diff --git a/Site/BaseFront/Front/src/infoblock.h b/Site/BaseFront/Front/src/infoblock.h
index e3771f1..bee999d 100644
--- a/Site/BaseFront/Front/src/infoblock.h
+++ b/Site/BaseFront/Front/src/infoblock.h
@@ -2,8 +2,19 @@
#define INFOBLOCK_H
#include
+#include
+
namespace BaseFront {
+/**
+ * @brief The Link struct Conteins 2 members it is name of link and hyperlink of the target address
+ */
+struct Link {
+ Link(const QString& name = "", const QString& link = "");
+ QString name = "";
+ QString link = "";
+};
+
/**
* @brief The InfoBlock class - this class contains information for viewsolutions comonents
*/
@@ -12,7 +23,8 @@ class InfoBlock : public QObject
Q_OBJECT
Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged)
Q_PROPERTY(QString sourceText READ sourceText WRITE setSourceText NOTIFY sourceTextChanged)
- Q_PROPERTY(QString bakcBroundPicture READ bakcBroundPicture WRITE setBakcBroundPicture NOTIFY bakcBroundPictureChanged)
+ Q_PROPERTY(QString bakcBroundPicture READ bakcBroundPicture WRITE setBakcgroundPicture NOTIFY bakcBroundPictureChanged)
+ Q_PROPERTY(int linksCount READ linksCount NOTIFY linksCountChanged)
public:
explicit InfoBlock(QObject *parent = nullptr);
@@ -21,10 +33,17 @@ public:
QString sourceText() const;
QString bakcBroundPicture() const;
+ Q_INVOKABLE QString linkName(int index) const;
+ Q_INVOKABLE QString linkAddress(int index) const;
+
+ int linksCount() const;
+
+ void setLinks(const QList& links);
+
public slots:
void setTitle(QString title);
void setSourceText(QString sourceText);
- void setBakcBroundPicture(QString bakcBroundPicture);
+ void setBakcgroundPicture(QString bakcBroundPicture);
signals:
@@ -32,10 +51,13 @@ signals:
void sourceTextChanged(QString sourceText);
void bakcBroundPictureChanged(QString bakcBroundPicture);
+ void linksCountChanged(int linksCount);
+
private:
QString m_title;
QString m_sourceText;
QString m_bakcBroundPicture;
+ QList m_links;
};
uint qHash(const InfoBlock& obj);
diff --git a/Site/ViewSolutions b/Site/ViewSolutions
index 78ba786..785222f 160000
--- a/Site/ViewSolutions
+++ b/Site/ViewSolutions
@@ -1 +1 @@
-Subproject commit 78ba7867221accc3f45478d9c2431b0b473d2272
+Subproject commit 785222f2caa5f7cb6e1e696ee00351529f7abe25
diff --git a/Site/src/Models/abstractpage.cpp b/Site/src/Models/abstractpage.cpp
index 03285ab..cbdbd26 100644
--- a/Site/src/Models/abstractpage.cpp
+++ b/Site/src/Models/abstractpage.cpp
@@ -7,12 +7,17 @@ AbstractPage::AbstractPage()
}
+QList AbstractPage::links() const {
+ return {};
+}
+
QObject * AbstractPage::makeBlok() const {
auto block = new BaseFront::InfoBlock();
block->setTitle(title());
block->setSourceText(data());
- block->setBakcBroundPicture(backgroud());
+ block->setBakcgroundPicture(backgroud());
+ block->setLinks(links());
return block;
}
diff --git a/Site/src/Models/abstractpage.h b/Site/src/Models/abstractpage.h
index e70c2e2..587398f 100644
--- a/Site/src/Models/abstractpage.h
+++ b/Site/src/Models/abstractpage.h
@@ -6,6 +6,10 @@
#include
#include
+namespace BaseFront {
+ class Link;
+}
+
/**
* @brief The AbstractPage class - This is interface of all text pages on cpp.
*/
@@ -34,6 +38,12 @@ public:
*/
virtual QString backgroud() const = 0;
+ /**
+ * @brief links This method should be return the list of links for open in web.
+ * @return list of links.
+ * The Default implementation return empry list.
+ */
+ virtual QList links() const;
/**
* @brief makeBlok This method build infoblock from available data.
diff --git a/Site/src/Models/cqtdeployerpage.cpp b/Site/src/Models/cqtdeployerpage.cpp
index ba3ba24..2e7a4d2 100644
--- a/Site/src/Models/cqtdeployerpage.cpp
+++ b/Site/src/Models/cqtdeployerpage.cpp
@@ -1,28 +1,36 @@
#include "cqtdeployerpage.h"
+#include
+
CQtDeployerAbout::CQtDeployerAbout()
{
}
QString CQtDeployerAbout::data() const {
- auto sourceText = tr("The CQtDeployer is application for extract all depends library of executable and create"
- " launch script for your application."
- "
"
- " Key differences of this program:"
- "
"
- "* Performance: this program deploys the application several times faster (up to 10 seconds)"
- "
"
- "* Flexibility: this application's got flags that help you to configure the deployment"
- " for your or your project's needs"
- "
"
- "* Crossdeploy: this application's support windows and linux distrebutives,"
- " This means that you can use it not only to deploy a project for your platform,"
- " but also to deploy a project on Linux for Windows and vice versa."
- "
"
- "* Fast create installers : Upon completion of the deployment,"
- " you will receive a self-contained installer of your distribution."
- );
+ auto sourceText = tr(
+ "\n## What is CQtDeployer \n"
+ "The CQtDeployer is application for extract all depends library of executable and create launch script for your application.\n"
+ "\n"
+ "Key differences of this program:\n"
+ "* Performance: this program deploys the application several times faster (up to 10 seconds)\n"
+ "* Flexibility: this application's got flags that help you to configure the deployment for your or your project's needs\n"
+ "* Crossdeploy: this application's support windows and linux distrebutives,"
+ " This means that you can use it not only to deploy a project for your platform,"
+ " but also to deploy a project on Linux for Windows and vice versa.\n"
+ "* Fast create installers : Upon completion of the deployment, you will receive a self-contained installer of your distribution.\n"
+ "\n"
+ "## Supported platforms:\n"
+ "* Linux classic\n"
+ "* Linux snap \n"
+ "* Windows \n"
+ "\n"
+ "## Support processors architectures:\n"
+ "* x86 \n"
+ "* x86-64 \n"
+ "* ARM \n"
+ "* ARM64 \n"
+ );
return sourceText;
}
@@ -35,6 +43,10 @@ QString CQtDeployerAbout::backgroud() const {
return resourcesPath() + "/cqtdeployer.png";
}
+QList CQtDeployerAbout::links() const {
+ return {{tr("get more information"), "https://github.com/QuasarApp/CQtDeployer/blob/master/README.md"}};
+}
+
CQtDeployerExamples::CQtDeployerExamples()
{
@@ -42,19 +54,18 @@ CQtDeployerExamples::CQtDeployerExamples()
}
QString CQtDeployerExamples::data() const {
- auto sourceText = tr("The utility transfers the path to the executable files of the deployed programs using the option -bin. The transferred programs are analyzed and get a list of dependencies. If the programs being deployed depend on Qt, then a list of modules is formed based on the dependencies. Qt plugins are deployed depending on the qt modules used. Then qml plugins are copied, if necessary, and standard qt translations. After completing all the steps described, scripts are formed to launch the application.
: "
- "cqtdeployer -bin myApp.exe -qmake /media/D/Qt/5.12.5/gcc_64/bin/qmake.exe -qmlDir . "
- "Where: "
- " • cqtdeployer is a utility call (befor version 1.4 windows version used %cqtdeployer% command)."
- " • - bin - the option for transferring the paths of the application executable files."
- " • myApp.exe and myApp - the path to the application executable file itself"
- " • - qmake - the option for transferring qmake paths for qt deployment."
- " • - qmlDir - the option for transferring paths to qml files of the application."
- "
For more exampless you can see the our wiki page"
+ auto sourceText = tr("The utility transfers the path to the executable files of the deployed programs using the option -bin. The transferred programs are analyzed and get a list of dependencies. If the programs being deployed depend on Qt, then a list of modules is formed based on the dependencies. Qt plugins are deployed depending on the qt modules used. Then qml plugins are copied, if necessary, and standard qt translations. After completing all the steps described, scripts are formed to launch the application.\n"
+ " ### For example: \n"
+ " #### Linux \n"
+ " ```cqtdeployer -bin myApp -qmake /media/D/Qt/5.15.2/gcc_64/bin/qmake -qmlDir . ```\n"
+ " #### Windows\n"
+ " ``` cqtdeployer -bin myApp.exe -qmake /media/D/Qt/5.12.5/gcc_64/bin/qmake.exe -qmlDir . ```\n"
+ " #### Where:\n"
+ " * cqtdeployer is a utility call (befor version 1.4 windows version used %cqtdeployer% command).\n"
+ " * -bin - the option for transferring the paths of the application executable files.\n"
+ " * myApp.exe and myApp - the path to the application executable file itself\n"
+ " * -qmake - the option for transferring qmake paths for qt deployment.\n"
+ " * -qmlDir - the option for transferring paths to qml files of the application.\n"
);
return sourceText;
}
@@ -69,15 +80,18 @@ QString CQtDeployerExamples::backgroud() const {
}
+QList CQtDeployerExamples::links() const {
+ return {{tr("more exampless"), "https://github.com/QuasarApp/CQtDeployer/wiki/quickguide"}};
+}
+
CQtDeployerDocs::CQtDeployerDocs()
{
}
QString CQtDeployerDocs::data() const {
- auto sourceText = tr("The source code for CQtDeployer components is provided under Gplv3 licenses and is freely available on GitHub.
"
- "* Full description and documentation: available here"
- "Download Page");
+ auto sourceText = tr("The source code for "
+ "CQtDeployer components is provided under Gplv3 licenses and is freely available on GitHub. \n");
return sourceText;
}
@@ -90,3 +104,9 @@ QString CQtDeployerDocs::title() const {
QString CQtDeployerDocs::backgroud() const {
return resourcesPath() + "/Iconbronzecorp.png";
}
+
+QList CQtDeployerDocs::links() const {
+ return {{tr("Full description and documentation"), "https://github.com/QuasarApp/CQtDeployer/wiki"},
+ {tr("Download"), "https://github.com/QuasarApp/CQtDeployer/releases"}};
+
+}
diff --git a/Site/src/Models/cqtdeployerpage.h b/Site/src/Models/cqtdeployerpage.h
index a2a0010..1d78c23 100644
--- a/Site/src/Models/cqtdeployerpage.h
+++ b/Site/src/Models/cqtdeployerpage.h
@@ -10,9 +10,11 @@ public:
// AbstractPage interface
public:
- QString data() const;
- QString title() const;
- QString backgroud() const;
+ QString data() const override;
+ QString title() const override;
+ QString backgroud() const override;
+ QList links() const override;
+
};
@@ -23,9 +25,11 @@ public:
// AbstractPage interface
public:
- QString data() const;
- QString title() const;
- QString backgroud() const;
+ QString data() const override;
+ QString title() const override;
+ QString backgroud() const override;
+ QList links() const override;
+
};
@@ -36,9 +40,11 @@ public:
// AbstractPage interface
public:
- QString data() const;
- QString title() const;
- QString backgroud() const;
+ QString data() const override;
+ QString title() const override;
+ QString backgroud() const override;
+ QList links() const override;
+
};
diff --git a/Site/src/View/InfoBlock.qml b/Site/src/View/InfoBlock.qml
new file mode 100644
index 0000000..264a0c5
--- /dev/null
+++ b/Site/src/View/InfoBlock.qml
@@ -0,0 +1,104 @@
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Controls.Material 2.15
+import QtQuick.Controls.Universal 2.15
+import QtQuick.Layouts 1.14
+import QtQuick.Window 2.15
+import QtGraphicalEffects 1.15
+
+import ViewSolutionsModule 1.0
+
+ViewPortGradientPage {
+ id: root
+ property int linksCount: 0
+ property var model: null
+
+ viewPortDelegatH: header.paintedHeight + header.anchors.bottomMargin + header.anchors.topMargin + sourceText.paintedHeight + sourceText.anchors.bottomMargin + sourceText.anchors.topMargin + (linksCount + 1) * (sourceTextPixelSize + 25 + textLayout.spacing)
+
+ content:
+ Item {
+ id: privatePage
+
+ clip: true
+ TextEdit {
+ id: header
+ font.bold: true
+ font.pixelSize: headerTextPixelSize
+ text: title;
+ color: fontColor
+
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ wrapMode: Text.WordWrap
+ clip: true
+ height: paintedHeight
+
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.margins: textMargins
+
+ selectByMouse: true
+ readOnly: true
+
+ layer.effect: DropShadow {
+ verticalOffset: 0
+ color: "#80000000"
+ radius: 1
+ samples: 3
+ }
+ }
+
+ ColumnLayout {
+ id : textLayout
+ anchors.bottom: parent.bottom
+ anchors.top: header.bottom
+ anchors.left: parent.left
+ anchors.horizontalCenter: parent.Center
+ anchors.margins: textMargins
+ width: parent.width / 2
+
+ TextEdit {
+ id: sourceText
+ font.bold: false
+ font.pixelSize: sourceTextPixelSize
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ text: root.text
+ color: fontColor
+ readOnly: true
+ selectByMouse: true
+ textFormat: TextEdit.MarkdownText
+
+ wrapMode: Text.WordWrap
+
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+
+ layer.enabled: true
+ layer.effect: DropShadow {
+ verticalOffset: 0
+ color: "#80000000"
+ radius: 1
+ samples: 3
+ }
+
+
+ }
+
+ Repeater {
+ model: linksCount
+
+ Button {
+ text: root.model.linkName(index)
+
+ onClicked: {
+ Qt.openUrlExternally(root.model.linkAddress(index));
+ }
+ font.pixelSize: sourceTextPixelSize
+ }
+ }
+ }
+
+ }
+}
diff --git a/Site/src/View/ListViewer.qml b/Site/src/View/ListViewer.qml
index 2e18e3a..71dc8f3 100644
--- a/Site/src/View/ListViewer.qml
+++ b/Site/src/View/ListViewer.qml
@@ -16,7 +16,7 @@ ListView {
delegate: Component {
- ViewPortGradientPage {
+ InfoBlock {
property var data: modelData
source: (data)? data.bakcBroundPicture: ""
title: (data)? data.title: ""
@@ -28,6 +28,8 @@ ListView {
width: viewPort.width
viewground: viewgroundItem
listView: viewPort
+ linksCount: (data)? data.linksCount: 0
+ model: data
}
}
diff --git a/Site/src/qml.qrc b/Site/src/qml.qrc
index aacb99b..b2483a4 100644
--- a/Site/src/qml.qrc
+++ b/Site/src/qml.qrc
@@ -5,6 +5,7 @@
View/ListViewer.qmlView/Languages.qmlView/SideBar.qml
+ View/InfoBlock.qmlfonts/Roboto-Regular.ttf
diff --git a/Site/src/translations/Site_ru_RU.ts b/Site/src/translations/Site_ru_RU.ts
index cf03b82..5aab9d3 100644
--- a/Site/src/translations/Site_ru_RU.ts
+++ b/Site/src/translations/Site_ru_RU.ts
@@ -12,41 +12,94 @@
CQtDeployerAbout
-
- The CQtDeployer is application for extract all depends library of executable and create launch script for your application.<br><br><br> Key differences of this program:<br><br>* Performance: this program deploys the application several times faster (up to 10 seconds)<br><br>* Flexibility: this application's got flags that help you to configure the deployment for your or your project's needs<br><br>* Crossdeploy: this application's support windows and linux distrebutives, This means that you can use it not only to deploy a project for your platform, but also to deploy a project on Linux for Windows and vice versa.<br><br>* Fast create installers : Upon completion of the deployment, you will receive a self-contained installer of your distribution.
+
+
+## What is CQtDeployer
+The CQtDeployer is application for extract all depends library of executable and create launch script for your application.
+
+Key differences of this program:
+* Performance: this program deploys the application several times faster (up to 10 seconds)
+* Flexibility: this application's got flags that help you to configure the deployment for your or your project's needs
+* Crossdeploy: this application's support windows and linux distrebutives, This means that you can use it not only to deploy a project for your platform, but also to deploy a project on Linux for Windows and vice versa.
+* Fast create installers : Upon completion of the deployment, you will receive a self-contained installer of your distribution.
+
+## Supported platforms:
+* Linux classic
+* Linux snap
+* Windows
+
+## Support processors architectures:
+* x86
+* x86-64
+* ARM
+* ARM64
+
-
+ Deploy any С/С++ application is easy with CQTDeployer
+
+
+ get more information
+
+ CQtDeployerDocs
-
- The source code for CQtDeployer components is provided under Gplv3 licenses and is freely available on GitHub. <br><br>* Full description and documentation: available <a href='https://github.com/QuasarApp/CQtDeployer/wiki'>here</a>Download <a href='https://github.com/QuasarApp/CQtDeployer/releases'>Page</a>
+
+ The source code for CQtDeployer components is provided under Gplv3 licenses and is freely available on GitHub.
+
-
+ More Inforamtions About CQtDeployer
+
+
+ Full description and documentation
+
+
+
+
+ Download
+
+ CQtDeployerExamples
-
- The utility transfers the path to the executable files of the deployed programs using the option -bin. The transferred programs are analyzed and get a list of dependencies. If the programs being deployed depend on Qt, then a list of modules is formed based on the dependencies. Qt plugins are deployed depending on the qt modules used. Then qml plugins are copied, if necessary, and standard qt translations. After completing all the steps described, scripts are formed to launch the application. <br><br><br>For example: <br><br><h4>Linux</h4>:<br>cqtdeployer -bin myApp -qmake /media/D/Qt/5.15.2/gcc_64/bin/qmake -qmlDir .<br><h4>Windows</h4>:<br>cqtdeployer -bin myApp.exe -qmake /media/D/Qt/5.12.5/gcc_64/bin/qmake.exe -qmlDir . <br>Where:<br><br>• cqtdeployer is a utility call (befor version 1.4 windows version used %cqtdeployer% command).<br>• - bin - the option for transferring the paths of the application executable files.<br>• myApp.exe and myApp - the path to the application executable file itself<br>• - qmake - the option for transferring qmake paths for qt deployment.<br>• - qmlDir - the option for transferring paths to qml files of the application.<br><br> For more exampless you can see the our wiki <a href='https://github.com/QuasarApp/CQtDeployer/wiki/quickguide'>page</a>
+
+ The utility transfers the path to the executable files of the deployed programs using the option -bin. The transferred programs are analyzed and get a list of dependencies. If the programs being deployed depend on Qt, then a list of modules is formed based on the dependencies. Qt plugins are deployed depending on the qt modules used. Then qml plugins are copied, if necessary, and standard qt translations. After completing all the steps described, scripts are formed to launch the application.
+ ### For example:
+ #### Linux
+ ```cqtdeployer -bin myApp -qmake /media/D/Qt/5.15.2/gcc_64/bin/qmake -qmlDir . ```
+ #### Windows
+ ``` cqtdeployer -bin myApp.exe -qmake /media/D/Qt/5.12.5/gcc_64/bin/qmake.exe -qmlDir . ```
+ #### Where:
+ * cqtdeployer is a utility call (befor version 1.4 windows version used %cqtdeployer% command).
+ * -bin - the option for transferring the paths of the application executable files.
+ * myApp.exe and myApp - the path to the application executable file itself
+ * -qmake - the option for transferring qmake paths for qt deployment.
+ * -qmlDir - the option for transferring paths to qml files of the application.
+
-
+ Get started
+
+
+ more exampless
+
+ Header
@@ -88,7 +141,7 @@
HeartAbout
- QuasarApp Heart - it is base backend for C++/Qt projects. This library support work with databases and work with lite network requests. <br><br><h2> Futures </h2> <br> <br><br> <br> * [YES]Support ssl sockets <<br> * [YES] Support initialize database <br> * [YES] Support work in database <br> * [STILL NO] Support decentralized network mode <br> This library consists of two levels (AbstractNode level and DataBaseNode level).<br> <br> <h3> AbstractNode level (0) </h3><br> <h4> Description </h4><br>The AbstractNode level implement only base functions of create a new work threads and parsing packages.<br>For more information see QuasarApp Heart documentation, QH namespace.<br><br> <h3> DataBaseNode level (1)</h3><br> <h4> Description<h4>The DataBaseNode level implement methods and packages for work with databases. This level using Qt classes for wrking with database, so for more information about suport databases see <a href='https://doc.qt.io/qt-5/sql-driver.html'>Qt Documentation</a>.
+ QuasarApp Heart - it is base backend for C++/Qt projects. This library support work with databases and work with lite network requests. <br><br><h2> Futures </h2> <br> <br><br> <br> * [YES]Support ssl sockets <<br> * [YES] Support initialize database <br> * [YES] Support work in database <br> * [STILL NO] Support decentralized network mode <br> This library consists of two levels (AbstractNode level and DataBaseNode level).<br> <br> <h3> AbstractNode level (0) </h3><br> <h4> Description </h4><br>The AbstractNode level implement only base functions of create a new work threads and parsing packages.<br>For more information see QuasarApp Heart documentation, QH namespace.<br><br> <h3> DataBaseNode level (1)</h3><br> <h4> Description</h4>The DataBaseNode level implement methods and packages for work with databases. This level using Qt classes for wrking with database, so for more information about suport databases see <a href='https://doc.qt.io/qt-5/sql-driver.html'>Qt Documentation</a>.
@@ -101,7 +154,7 @@
HeartDocs
- <br>QuasarApp Heart - if you want get more information see the <a href='docs/heart/html/index.html'>technical documentation</a>.
+ <br>QuasarApp Heart - if you want get more information see the <a href='docs/heart/html/index.html'>technical documentation</a>. <br><br><br><br>
@@ -114,7 +167,7 @@
HeartExamples
- <br>QuasarApp Heart - has very detailed examples of how the library works, as well as a complete description of all the functions in the official technical documentation. But if you want to get only a short example of how to use it, you can visit the official page on <a href='https://github.com/QuasarApp/Heart'>github</a>.
+ <br>QuasarApp Heart - has very detailed examples of how the library works, as well as a complete description of all the functions in the official technical documentation. <br><br> But if you want to get only a short example of how to use it, you can visit the official page on <a href='https://github.com/QuasarApp/Heart'>github</a>.<br><br>