-cmake_minimum_required(VERSION 3.16)
-
-project(android-qt-sandbox VERSION 0.1 LANGUAGES CXX)
-
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-
-find_package(Qt6 6.4 REQUIRED COMPONENTS Quick Sensors Svg Xml)
-
-qt_standard_project_setup()
-
-qt_add_executable(android-qt-sandbox
- main.cpp AppManager.cpp Show.cpp Shows.cpp
- MANUAL_FINALIZATION
-)
-
-qt_add_qml_module(android-qt-sandbox
- URI tlb
- VERSION 1.0
- QML_FILES Main.qml CardsList.qml
- views/Summary.qml views/Episodes.qml views/Show.qml views/Search.qml
- templates/Page.qml templates/TextWrapper.qml
- # RESOURCES Bluebubble.svg
-)
-
-# set_target_properties(android-qt-sandbox PROPERTIES
-# MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
-# MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
-# MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
-# MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/Info.plist"
-# MACOSX_BUNDLE TRUE
-# WIN32_EXECUTABLE TRUE
-# )
-
-# set_property(TARGET android-qt-sandbox APPEND PROPERTY
-# QT_ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android
-# )
-
-target_compile_definitions(android-qt-sandbox
- PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
-target_link_libraries(android-qt-sandbox
- PRIVATE Qt6::Quick Qt6::Sensors Qt6::Svg Qt6::Xml)
-
-# install(TARGETS android-qt-sandbox
-# BUNDLE DESTINATION .
-# LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-# RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-# )
-
-qt_finalize_executable(android-qt-sandbox)
+cmake_minimum_required(VERSION 3.16)
+
+# project(tlb-podcasts VERSION 0.1 LANGUAGES CXX)
+project(tlb-podcasts)
+
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_STANDARD 17)
+
+find_package(Qt6 6.4 REQUIRED COMPONENTS Quick Sensors Svg Xml)
+
+qt_standard_project_setup()
+
+add_subdirectory(tlb/core)
+add_subdirectory(tlb/ui)
+add_subdirectory(app)
+
+
+
+
+++ /dev/null
-#include "Show.h"
--- /dev/null
+set(SRC_PREFIX src/)
+
+qt_add_executable(tlb-podcasts
+ ${SRC_PREFIX}/main.cpp
+ # MANUAL_FINALIZATION
+)
+
+target_compile_definitions(tlb-podcasts
+ PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
+target_link_libraries(tlb-podcasts
+ PRIVATE
+ # QT
+ Qt6::Quick Qt6::Sensors Qt6::Svg Qt6::Xml
+ # INTERNAL
+ tlbcore tlbui
+)
+
+# qt_finalize_executable(tlb-podcasts)
#include <QUrl>
#include <QFont>
-#include "AppManager.h"
+// #include <QtPlugin>
+// Q_IMPORT_PLUGIN(tlb.core)
+
+#include <AppManager.h>
int main(int argc, char **argv)
{
QGuiApplication::setFont(font);
AppManager am(nullptr);
- am.initializeView(QUrl("qrc:/tlb/Main.qml"));
+ am.initializeView(QUrl("qrc:/tlb/ui/qml/Main.qml"));
#if 0 // if using a QQuickWindow
- QQmlComponent rootComponent(view.engine(), "qrc:/tlb/Main.qml");
+ QQmlComponent rootComponent(view.engine(), "qrc:/tlb/ui/qml/Main.qml");
if(rootComponent.status() != QQmlComponent::Ready){
fprintf(stderr, "Main.qml failed to initialize!\n");
foreach(const QQmlError &error, rootComponent.errors()){
--- /dev/null
+qt_policy(SET QTP0001 NEW)
+
+set(SRC_PREFIX src/)
+set(SRC_FILES
+ AppManager.cpp Show.cpp Shows.cpp
+)
+list(TRANSFORM SRC_FILES PREPEND ${SRC_PREFIX})
+
+# needed due to separate folders
+set(HDR_PREFIX include/)
+set(HDR_FILES
+ AppManager.h Show.h Shows.h
+)
+list(TRANSFORM HDR_FILES PREPEND ${HDR_PREFIX})
+
+# can't link to shared
+# qt_add_plugin(tlbcore STATIC
+# qt_add_library(tlbcore STATIC
+# ${HDR_FILES} ${SRC_FILES}
+# )
+qt_add_qml_module(tlbcore
+ URI tlb.core
+ VERSION 1.0
+ RESOURCE_PREFIX /
+ SOURCES ${HDR_FILES} ${SRC_FILES}
+)
+
+target_include_directories(tlbcore
+ PUBLIC include
+)
+target_compile_definitions(tlbcore
+ PRIVATE $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:QT_QML_DEBUG>)
+target_link_libraries(tlbcore
+ PRIVATE Qt6::Quick Qt6::Sensors Qt6::Svg Qt6::Xml)
-#include "AppManager.h"
+#include <AppManager.h>
#include <stdio.h>
#include <QFile>
--- /dev/null
+#include <Show.h>
-#include "Shows.h"
+#include <Shows.h>
#include <QDir>
#include <QFile>
--- /dev/null
+qt_policy(SET QTP0001 NEW)
+
+set(QML_PREFIX qml/)
+set(qml_src
+ Main.qml CardsList.qml
+ views/Summary.qml views/Episodes.qml views/Show.qml views/Search.qml
+ templates/Page.qml templates/TextWrapper.qml
+)
+list(TRANSFORM qml_src PREPEND ${QML_PREFIX})
+
+qt_add_library(tlbui SHARED
+)
+
+qt_add_qml_module(tlbui
+ URI tlb.ui
+ VERSION 1.0
+ RESOURCE_PREFIX /
+ QML_FILES
+ ${qml_src}
+)
import QtQuick 2.0
-import tlb 1.0
+import tlb.core 1.0
+import "qrc:/tlb/ui/qml/templates"
/* Podcast App */
/* Views: */
Repeater {
model: [ {"display": "summary",
- "link" : "qrc:/tlb/views/Summary.qml" },
+ "link" : "qrc:/tlb/ui/qml/views/Summary.qml" },
{"display": "episode list",
- "link" : "qrc:/tlb/views/Episodes.qml"},
+ "link" : "qrc:/tlb/ui/qml/views/Episodes.qml"},
{"display": "search",
- "link" : "qrc:/tlb/views/Search.qml"},
+ "link" : "qrc:/tlb/ui/qml/views/Search.qml"},
{"display": "categories",
"link" : "error.qml"},
{"display": "refresh all",
import QtQuick 2.0
+import "qrc:/tlb/ui/qml/templates"
+/* import tlb.ui 1.0 */
+
/* SONY DISPLAY INFORMATION
* 3840x1644, 643ppi (HUGE SCREEN)
*/
import QtQuick
-import tlb
+import tlb.core
/*
* This template is a full page in the system. Contains:
import QtQuick
/* TODO */
-import "qrc:/tlb/templates"
+import "qrc:/tlb/ui/qml/templates"
+/* import tlb.ui 1.0 */
Page {
pageTitle: "Episode List"
import QtQuick
import QtQuick.Layouts
-import "qrc:/tlb/templates"
+import "qrc:/tlb/ui/qml/templates"
+/* import tlb.ui 1.0 */
Page {
id: root
import QtQuick
import QtQuick.Layouts
-import tlb
-import "qrc:/tlb/templates"
+import tlb.core
+import "qrc:/tlb/ui/qml/templates"
+/* import tlb.ui 1.0 */
Page {
pageTitle: "Show Details"
import QtQuick 2.0
import QtQml.XmlListModel
-import tlb 1.0
-import "qrc:/tlb/templates"
+import tlb.core 1.0
+import "qrc:/tlb/ui/qml/templates"
+/* import tlb.ui 1.0 */
/* This view provides a summary of all podcasts. */
if(selectedTitle !== ""){
AppManager.shows.selectedName = selectedTitle
AppManager.shows.selected = selectedUrl;
- AppManager.requestNewSource("qrc:/tlb/views/Show.qml")
+ AppManager.requestNewSource("qrc:/tlb/ui/qml/views/Show.qml")
}
}