mirror of
https://github.com/redstrate/Astra.git
synced 2025-04-23 12:57:45 +00:00
Add placeholder for future QML interface, change startup options
This commit is contained in:
parent
5307304c57
commit
365706e43a
6 changed files with 69 additions and 9 deletions
|
@ -2,8 +2,9 @@ cmake_minimum_required(VERSION 3.0)
|
||||||
project(Astra)
|
project(Astra)
|
||||||
|
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
set(CMAKE_AUTORCC ON)
|
||||||
|
|
||||||
find_package(Qt5 COMPONENTS Core Widgets Network CONFIG REQUIRED)
|
find_package(Qt5 COMPONENTS Core Widgets Network Quick CONFIG REQUIRED)
|
||||||
|
|
||||||
option(ENABLE_WATCHDOG "Build with Tesseract support (needed for Watchdog)" OFF)
|
option(ENABLE_WATCHDOG "Build with Tesseract support (needed for Watchdog)" OFF)
|
||||||
option(USE_OWN_LIBRARIES "Build with own libraries" OFF)
|
option(USE_OWN_LIBRARIES "Build with own libraries" OFF)
|
||||||
|
@ -44,7 +45,10 @@ set(SRC
|
||||||
include/desktopinterface.h
|
include/desktopinterface.h
|
||||||
include/cmdinterface.h
|
include/cmdinterface.h
|
||||||
src/cmdinterface.cpp
|
src/cmdinterface.cpp
|
||||||
src/desktopinterface.cpp)
|
src/desktopinterface.cpp
|
||||||
|
include/tabletinterface.h
|
||||||
|
src/tabletinterface.cpp
|
||||||
|
qml/qml.qrc)
|
||||||
|
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
|
|
||||||
|
@ -130,7 +134,7 @@ endif()
|
||||||
add_subdirectory(external)
|
add_subdirectory(external)
|
||||||
|
|
||||||
set(LIBRARIES
|
set(LIBRARIES
|
||||||
Qt5::Core Qt5::Widgets Qt5::Network ${LIBRARIES})
|
Qt5::Core Qt5::Widgets Qt5::Network Qt5::Quick ${LIBRARIES})
|
||||||
|
|
||||||
if(ENABLE_WATCHDOG)
|
if(ENABLE_WATCHDOG)
|
||||||
set(LIBRARIES ${LIBRARIES} ${TESSERACT_LIBRARIES} ${LEPTONICA_LIBRARIES})
|
set(LIBRARIES ${LIBRARIES} ${TESSERACT_LIBRARIES} ${LEPTONICA_LIBRARIES})
|
||||||
|
|
17
include/tabletinterface.h
Normal file
17
include/tabletinterface.h
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QQmlApplicationEngine>
|
||||||
|
|
||||||
|
#include "launchercore.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The tablet-oriented (name to change), touch and gamepad-driven interface for Astra. The interface is
|
||||||
|
* simpler due to size constraints.
|
||||||
|
*/
|
||||||
|
class TabletInterface {
|
||||||
|
public:
|
||||||
|
TabletInterface(LauncherCore& core);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QQmlApplicationEngine* applicationEngine = nullptr;
|
||||||
|
};
|
19
qml/main.qml
Normal file
19
qml/main.qml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
import QtQuick 2.7
|
||||||
|
import QtQuick.Controls 2.1
|
||||||
|
import QtQuick.Window 2.0
|
||||||
|
|
||||||
|
ApplicationWindow {
|
||||||
|
id: window
|
||||||
|
|
||||||
|
width: 640
|
||||||
|
height: 480
|
||||||
|
|
||||||
|
visible: true
|
||||||
|
|
||||||
|
Label {
|
||||||
|
text: "Hello, world!"
|
||||||
|
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
}
|
||||||
|
}
|
5
qml/qml.qrc
Normal file
5
qml/qml.qrc
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<RCC>
|
||||||
|
<qresource prefix="/">
|
||||||
|
<file>main.qml</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
20
src/main.cpp
20
src/main.cpp
|
@ -12,6 +12,7 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "desktopinterface.h"
|
#include "desktopinterface.h"
|
||||||
#include "cmdinterface.h"
|
#include "cmdinterface.h"
|
||||||
|
#include "tabletinterface.h"
|
||||||
|
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char* argv[]) {
|
||||||
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
|
||||||
|
@ -38,8 +39,14 @@ int main(int argc, char* argv[]) {
|
||||||
auto helpOption = parser.addHelpOption();
|
auto helpOption = parser.addHelpOption();
|
||||||
auto versionOption = parser.addVersionOption();
|
auto versionOption = parser.addVersionOption();
|
||||||
|
|
||||||
QCommandLineOption noguiOption("nogui", "Don't open a main window.");
|
QCommandLineOption desktopOption("desktop", "Open a desktop interface.");
|
||||||
parser.addOption(noguiOption);
|
parser.addOption(desktopOption);
|
||||||
|
|
||||||
|
QCommandLineOption tabletOption("tablet", "Open a tablet interface.");
|
||||||
|
parser.addOption(tabletOption);
|
||||||
|
|
||||||
|
QCommandLineOption cliOption("cli", "Don't open a main window, and use the cli interface.");
|
||||||
|
parser.addOption(cliOption);
|
||||||
|
|
||||||
auto cmd = new CMDInterface(parser);
|
auto cmd = new CMDInterface(parser);
|
||||||
|
|
||||||
|
@ -54,12 +61,13 @@ int main(int argc, char* argv[]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
LauncherCore c;
|
LauncherCore c;
|
||||||
LauncherWindow w(c);
|
if(parser.isSet(tabletOption)) {
|
||||||
if(!parser.isSet(noguiOption)) {
|
new TabletInterface(c);
|
||||||
new DesktopInterface(c);
|
} else if(parser.isSet(cliOption)) {
|
||||||
} else {
|
|
||||||
if(!cmd->parse(parser, c))
|
if(!cmd->parse(parser, c))
|
||||||
return -1;
|
return -1;
|
||||||
|
} else {
|
||||||
|
new DesktopInterface(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
return app.exec();
|
return app.exec();
|
||||||
|
|
7
src/tabletinterface.cpp
Normal file
7
src/tabletinterface.cpp
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#include "tabletinterface.h"
|
||||||
|
|
||||||
|
TabletInterface::TabletInterface(LauncherCore &core) {
|
||||||
|
applicationEngine = new QQmlApplicationEngine();
|
||||||
|
|
||||||
|
applicationEngine->load("qrc:/main.qml");
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue