Compare commits

18 Commits

Author SHA1 Message Date
6be4a36bf9 Merge branch 'release/0.2.1' 2026-01-15 14:19:55 +01:00
6c63e53848 Updated changelog. 2026-01-15 14:19:34 +01:00
e5ac8913ed Bumped version to 0.2.1. 2026-01-15 14:17:18 +01:00
c8dbe74fcc Displaying a QR code in the EditItemDialog containing the full data of the current item as a string. Closes #17. 2026-01-15 14:11:23 +01:00
525a9883f0 Merge tag '0.2.0' into develop
Basic working with data.
2026-01-14 10:52:50 +01:00
678bdbab47 Merge branch 'release/0.2.0' 2026-01-14 10:51:21 +01:00
b059379518 Version 0.2.0. With project description README.md and added CHANGELOG.md. 2026-01-14 10:51:01 +01:00
c9441d7eca Search dialog to select row(s). Closes #15. 2026-01-12 15:03:15 +01:00
bc5070a1a5 TableView can now be sorted by column (using QSortFilterProxyModel). Closes #8. 2026-01-12 10:21:49 +01:00
d22c0e466c Added two CSV files to test import and export capabilities. 2026-01-11 13:17:30 +01:00
1c3bb6da30 Merged CSV feature branch of GenericCore into develop. 2026-01-06 10:21:51 +01:00
fb57727286 Saving changed items before starting the updater. 2026-01-06 10:18:43 +01:00
85836dfda0 Simple import/export from/to CSV files. Closes #7. 2026-01-06 10:08:55 +01:00
b2bc725eff Refactoring: Gathered model meta data (role name, data types) in a central location. Closes #16. 2026-01-01 10:33:41 +01:00
9c4c77ef07 Items can be saved in the standard location as "items.json" and are loaded automatically on startup (if file exists). Closes #9. 2025-12-23 14:05:46 +01:00
01f8ff01fc Creating, editing and deleting model items can now be un-/redone. A Save/Discard/Cancel dialog is shown if the undo stack is unclean (No saving to file functionality yet). Closes #10. 2025-12-22 12:21:30 +01:00
eedd15b960 Model items can be created, edited and deleted. Closes #13, Closes #11 2025-12-08 15:14:15 +01:00
5a7e2637ff Displaying a basic read-only table model. Closes #12 2025-12-03 11:11:31 +01:00
11 changed files with 70 additions and 4 deletions

6
.gitmodules vendored
View File

@ -4,3 +4,9 @@
[submodule "UIs/GenericWidgets"]
path = UIs/GenericWidgets
url = ssh://wococo1@git.working-copy.org:46100/bent/GenericQtClientWidgets.git
[submodule "libs/3rdParty/rapidcsv"]
path = libs/3rdParty/rapidcsv
url = https://github.com/d99kris/rapidcsv.git
[submodule "libs/3rdParty/Qt-QrCodeGenerator"]
path = libs/3rdParty/Qt-QrCodeGenerator
url = https://github.com/alex-spataru/Qt-QrCodeGenerator.git

21
CHANGELOG.md Normal file
View File

@ -0,0 +1,21 @@
# Changelog
## 0.2.1 - 2026-01-15
### Added
- Displaying QR code of current item in edit item dialog
## 0.2 - 2026-01-14
### Added
- Displaying editable table model (sortable by column)
- Modifying model data can be un-/redone
- Data is stored in JSON file and automatically loaded on application start
- Data can be imported/exported from/into CSV file
- Model rows containing specific data can be selected via "Find item(s)" dialog
## 0.1 - 2025-11-01
A simple Qt application separated into an UI frontend and backend core. With installer (for Linux for now) and option to trigger updater from within the application.

View File

@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.16)
set(TARGET_APP "GenericQtClient")
project(${TARGET_APP} VERSION 0.1.0 LANGUAGES CXX)
project(${TARGET_APP} VERSION 0.2.1 LANGUAGES CXX)
enable_testing()
@ -11,6 +11,10 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_subdirectory(libs/GenericCore)
set (CORE_LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libs/GenericCore)
### 3rd party libraries
add_subdirectory(libs/3rdParty/Qt-QrCodeGenerator)
set (QR_LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libs/3rdParty/Qt-QrCodeGenerator)
configure_file(ApplicationConfig.h.in ApplicationConfig.h)
#Frontend applications

View File

@ -1,2 +1,19 @@
# GenericQtClient
This is a Qt application which can be used as a starting point for new software projects.
Common features most Qt software clients need will be already implemented and can be easily configured for the specific needs.
## Implemented features:
- Separated UI frontend and backend core (in its own git submodules)
- Using Qt model/view framework with QT undo framework
- Saving/Loading JSON files
- CSV import/export
- installable and updateable via Qt updater framework
- only linux for now
- Qt 6 libraries must be installed on the machine to run
## Coming features:
- REST client
- Extensive use of sorting and filtering models to display data in different ways
- ...

1
libs/3rdParty/rapidcsv vendored Submodule

Submodule libs/3rdParty/rapidcsv added at 03133b59e1

View File

@ -10,7 +10,7 @@ QT_END_NAMESPACE
TEST(CoreTests, TestEqualString) {
const QString coreName("GenericCore");
const QString coreVersion("0.0.1");
const QString coreVersion("0.2.0");
const auto expected = QString("%1 (Version %2)").arg(coreName).arg(coreVersion);
auto core = std::make_unique<GenericCore>();
const auto actual = core->toString();

View File

@ -0,0 +1,8 @@
Name,Description,Info,Factor
Item 0,This is item 0,Info of item 0,0
Item 1,This is item 1,Info of item 1,1
Item 2,This is item 2,Info of item 2,2
Item 3,This is item 3,Info of item 3,3
Item 4,This is item 4,Info of item 4,4
Item 5,This is item 5,Info of item 5,5
Item 6,This is item 6,Info of item 6,6
1 Name Description Info Factor
2 Item 0 This is item 0 Info of item 0 0
3 Item 1 This is item 1 Info of item 1 1
4 Item 2 This is item 2 Info of item 2 2
5 Item 3 This is item 3 Info of item 3 3
6 Item 4 This is item 4 Info of item 4 4
7 Item 5 This is item 5 Info of item 5 5
8 Item 6 This is item 6 Info of item 6 6

View File

@ -0,0 +1,8 @@
Name,Description,Info,Amount,Factor
Item 0,This is item 0,Info of item 0,0,0
Item 1,This is item 1,Info of item 1,1,1
Item 2,This is item 2,Info of item 2,2,2
Item 3,This is item 3,Info of item 3,3,3
Item 4,This is item 4,Info of item 4,4,4
Item 5,This is item 5,Info of item 5,5,5
Item 6,This is item 6,Info of item 6,6,6
1 Name Description Info Amount Factor
2 Item 0 This is item 0 Info of item 0 0 0
3 Item 1 This is item 1 Info of item 1 1 1
4 Item 2 This is item 2 Info of item 2 2 2
5 Item 3 This is item 3 Info of item 3 3 3
6 Item 4 This is item 4 Info of item 4 4 4
7 Item 5 This is item 5 Info of item 5 5 5
8 Item 6 This is item 6 Info of item 6 6 6