initial commit

This commit is contained in:
ikatono
2025-09-23 09:57:16 -05:00
commit 4435393177
6 changed files with 189 additions and 0 deletions

82
.gitignore vendored Normal file
View File

@@ -0,0 +1,82 @@
# This file is used to ignore files which are generated
# ----------------------------------------------------------------------------
*~
*.autosave
*.a
*.core
*.moc
*.o
*.obj
*.orig
*.rej
*.so
*.so.*
*_pch.h.cpp
*_resource.rc
*.qm
.#*
*.*#
core
!core/
tags
.DS_Store
.directory
*.debug
Makefile*
*.prl
*.app
moc_*.cpp
ui_*.h
qrc_*.cpp
Thumbs.db
*.res
*.rc
/.qmake.cache
/.qmake.stash
# qtcreator generated files
*.pro.user*
*.qbs.user*
CMakeLists.txt.user*
# xemacs temporary files
*.flc
# Vim temporary files
.*.swp
# Visual Studio generated files
*.ib_pdb_index
*.idb
*.ilk
*.pdb
*.sln
*.suo
*.vcproj
*vcproj.*.*.user
*.ncb
*.sdf
*.opensdf
*.vcxproj
*vcxproj.*
# MinGW generated files
*.Debug
*.Release
# Python byte code
*.pyc
# Binaries
# --------
*.dll
*.exe
# Directories with generated files
.moc/
.obj/
.pch/
.rcc/
.uic/
/build*/

44
CMakeLists.txt Normal file
View File

@@ -0,0 +1,44 @@
cmake_minimum_required(VERSION 3.16)
project(SubathonCounterAndTimer_quick VERSION 0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 REQUIRED COMPONENTS Quick)
qt_standard_project_setup(REQUIRES 6.8)
qt_add_executable(appSubathonCounterAndTimer_quick
main.cpp
)
qt_add_qml_module(appSubathonCounterAndTimer_quick
URI SubathonCounterAndTimer_quick
VERSION 1.0
QML_FILES
Main.qml
QML_FILES ChatList.qml
SOURCES ChatMessage.h
)
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
set_target_properties(appSubathonCounterAndTimer_quick PROPERTIES
# MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appSubathonCounterAndTimer_quick
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE
)
target_link_libraries(appSubathonCounterAndTimer_quick
PRIVATE Qt6::Quick
)
include(GNUInstallDirs)
install(TARGETS appSubathonCounterAndTimer_quick
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

24
ChatList.qml Normal file
View File

@@ -0,0 +1,24 @@
import QtQuick
import Qt.labs.qmlmodels
// This needs a model, either TableModel or something inheriting QAbstractItemModel
// According to docs TableView performance doesn't depend on model size
// Needs 3 columns: timestamp, username, message
Item {
id: item
Rectangle {
id: rect
TableView {
id: table
model: TableModel {
TableModelColumn { display: "timestamp" }
TableModelColumn { display: "displayname" }
TableModelColumn { display: "message" }
}
}
}
function addChatMessage(message: ChatMessage) {
// table.model
}
}

13
ChatMessage.h Normal file
View File

@@ -0,0 +1,13 @@
#ifndef CHATMESSAGE_H
#define CHATMESSAGE_H
#include <qdatetime.h>
class ChatMessage {
public:
QDateTime timestamp;
QString displayName;
QString chatMessage;
};
#endif // CHATMESSAGE_H

8
Main.qml Normal file
View File

@@ -0,0 +1,8 @@
import QtQuick
Window {
width: 640
height: 480
visible: true
title: qsTr("Hello World")
}

18
main.cpp Normal file
View File

@@ -0,0 +1,18 @@
#include <QGuiApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
QObject::connect(
&engine,
&QQmlApplicationEngine::objectCreationFailed,
&app,
[]() { QCoreApplication::exit(-1); },
Qt::QueuedConnection);
engine.loadFromModule("SubathonCounterAndTimer_quick", "Main");
return app.exec();
}