parent
95c0721578
commit
38299f7169
|
@ -0,0 +1,49 @@
|
||||||
|
cmake_minimum_required(VERSION 3.19)
|
||||||
|
project(Storybook)
|
||||||
|
|
||||||
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
|
||||||
|
set(CMAKE_AUTOUIC ON)
|
||||||
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
set(CMAKE_AUTORCC ON)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
find_package(
|
||||||
|
Qt5
|
||||||
|
COMPONENTS Core Quick QuickControls2
|
||||||
|
REQUIRED)
|
||||||
|
|
||||||
|
file(GLOB_RECURSE QML_FILES "stubs/*.qml" "../ui/StatusQ/*.qml" "../ui/app/*.qml")
|
||||||
|
file(GLOB_RECURSE JS_FILES "../ui/StatusQ/*.js" "../ui/app/*.js")
|
||||||
|
file(GLOB_RECURSE HEADERS *.h)
|
||||||
|
if(APPLE)
|
||||||
|
file(GLOB_RECURSE SOURCES *.cpp *.mm)
|
||||||
|
else()
|
||||||
|
file(GLOB_RECURSE SOURCES *.cpp)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_executable(
|
||||||
|
${PROJECT_NAME}
|
||||||
|
qml.qrc
|
||||||
|
${HEADERS}
|
||||||
|
${SOURCES}
|
||||||
|
${QML_FILES}
|
||||||
|
${JS_FILES}
|
||||||
|
)
|
||||||
|
|
||||||
|
target_compile_definitions(${PROJECT_NAME}
|
||||||
|
PRIVATE SRC_DIR="${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
target_link_libraries(
|
||||||
|
${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick Qt5::QuickControls2
|
||||||
|
SortFilterProxyModel)
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
find_library(AppKit AppKit)
|
||||||
|
find_library(Foundation Foundation)
|
||||||
|
|
||||||
|
target_link_libraries(${PROJECT_NAME} PRIVATE ${AppKit} ${Foundation})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_subdirectory(../ui/StatusQ/vendor/SortFilterProxyModel ./SortFilterProxyModel)
|
|
@ -0,0 +1,32 @@
|
||||||
|
#include <QGuiApplication>
|
||||||
|
#include <QQmlApplicationEngine>
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||||
|
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||||
|
#endif
|
||||||
|
QGuiApplication app(argc, argv);
|
||||||
|
app.setOrganizationName("Status");
|
||||||
|
app.setOrganizationDomain("status.im");
|
||||||
|
app.setApplicationName("Status Desktop Storybook");
|
||||||
|
|
||||||
|
QQmlApplicationEngine engine;
|
||||||
|
|
||||||
|
engine.addImportPath(QStringLiteral(":/"));
|
||||||
|
engine.addImportPath(SRC_DIR + QStringLiteral("/../ui/StatusQ/src"));
|
||||||
|
engine.addImportPath(SRC_DIR + QStringLiteral("/../ui/app"));
|
||||||
|
engine.addImportPath(SRC_DIR + QStringLiteral("/../ui/imports"));
|
||||||
|
engine.addImportPath(SRC_DIR + QStringLiteral("/stubs"));
|
||||||
|
|
||||||
|
const QUrl url(QStringLiteral("qrc:/main.qml"));
|
||||||
|
QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
|
||||||
|
&app, [url](QObject *obj, const QUrl &objUrl) {
|
||||||
|
if (!obj && url == objUrl)
|
||||||
|
QCoreApplication::exit(-1);
|
||||||
|
}, Qt::QueuedConnection);
|
||||||
|
engine.load(url);
|
||||||
|
|
||||||
|
return app.exec();
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
import QtQuick 2.14
|
||||||
|
import QtQuick.Controls 2.14
|
||||||
|
|
||||||
|
import StatusQ.Core 0.1
|
||||||
|
import StatusQ.Components 0.1
|
||||||
|
import StatusQ.Layout 0.1
|
||||||
|
|
||||||
|
import Qt.labs.settings 1.0
|
||||||
|
|
||||||
|
|
||||||
|
ApplicationWindow {
|
||||||
|
id: rootWindow
|
||||||
|
|
||||||
|
width: 1450
|
||||||
|
height: 840
|
||||||
|
visible: true
|
||||||
|
|
||||||
|
StatusSectionLayout {
|
||||||
|
id: mainPageView
|
||||||
|
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
showHeader: false
|
||||||
|
|
||||||
|
function page(name, fillPage) {
|
||||||
|
viewLoader.source = Qt.resolvedUrl("./pages/" + name + "Page.qml");
|
||||||
|
storeSettings.selected = viewLoader.source
|
||||||
|
}
|
||||||
|
|
||||||
|
leftPanel: StatusScrollView {
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.topMargin: 48
|
||||||
|
|
||||||
|
Column {
|
||||||
|
id: navigation
|
||||||
|
spacing: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
centerPanel: Item {
|
||||||
|
id: centerPanel
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
Loader {
|
||||||
|
id: viewLoader
|
||||||
|
anchors.fill: parent
|
||||||
|
clip: true
|
||||||
|
source: storeSettings.selected
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Settings {
|
||||||
|
id: storeSettings
|
||||||
|
property string selected: ""
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
<RCC>
|
||||||
|
<qresource prefix="/">
|
||||||
|
<file>main.qml</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
Loading…
Reference in New Issue