1
0
mirror of https://gitlab.cvh-server.de/skrause/flashcards.git synced 2026-06-15 02:23:51 +00:00

Compare commits

..

62 Commits

Author SHA1 Message Date
Sophtli cd3ea61503 add bibliography 2025-07-03 14:53:18 +02:00
Sophtli 5529da02db add tooltips 2025-07-03 14:49:51 +02:00
Sophtli a4ab9486a1 add dummy description 2025-07-03 14:34:38 +02:00
Sophtli 6cf180e4f0 update translations 2025-07-03 14:33:26 +02:00
Sophtli 34d68d3e51 add dummy description 2025-07-03 14:32:54 +02:00
Sophtli d916767369 add empty description 2025-07-03 14:31:42 +02:00
Sophtli 803185de87 add missing icons, cleanup translations, fix last little issues, prepare for documentation 2025-07-03 14:22:04 +02:00
Sophtli a444bdd2fb push local changes 2025-06-13 20:52:25 +02:00
Sophtli ed81f378a5 push local changes 2025-06-13 20:51:53 +02:00
Sophtli 4910217797 ci/cd test 2025-04-04 10:26:08 +02:00
Sophtli d05524a0c8 update pot, basic docs structure 2025-04-04 10:02:16 +02:00
Sophtli a8ede59d44 fix subtitle 2025-04-04 09:49:58 +02:00
Sophtli 48918ba4bf more stuff! 2025-04-05 08:55:56 +02:00
Sophtli 9f5f951a9f push local changes 2025-03-29 14:38:21 +01:00
Sophtli a90db5b042 add emph to header 2025-03-26 16:28:46 +01:00
Sophtli 6ee04e16bb more docs template cleanups 2025-03-26 16:15:19 +01:00
Sophtli 568e4a8db9 use hydra for heading, cleanup docs template 2025-03-26 16:07:59 +01:00
Sophtli 588dea495e docs fix 2025-03-26 15:37:11 +01:00
Sophtli 06de190d38 temporary fix for docs 2025-03-26 15:35:40 +01:00
Sophtli e382bb162b update translation 2025-03-26 14:55:40 +01:00
Sophtli cdc30546cb change texts and translations 2025-03-26 14:51:22 +01:00
Sophtli 4ad8fa443d try fix 2025-03-26 14:37:18 +01:00
Sophtli 430cdcc8bb reorder meson build 2025-03-26 14:18:46 +01:00
Sophtli 4d29719bb9 rename duplicate ids 2025-03-26 14:17:30 +01:00
Sophtli 6db523d5d6 small fixes, update to gnome sdk 48 2025-03-26 14:10:03 +01:00
Sophtli e5723d6a48 formatting, small changes 2025-03-26 14:03:23 +01:00
Sophtli 5f2b933a33 align sidebar text left 2025-02-19 17:04:05 +01:00
Sophtli 2144bc655b update ui 2025-02-19 16:21:45 +01:00
Sophtli 48848f55a3 improve metainfo 2025-02-18 21:21:05 +01:00
Sophtli 9376d02003 fix build 2025-02-18 18:54:23 +01:00
Sophtli a27e26d779 fix build 2025-02-18 18:50:56 +01:00
Sophtli f122102c3d update ui, add metainfo 2025-02-18 18:49:46 +01:00
Sophtli 81d2e8d92e remove en, update ui, some minor changes 2025-02-17 17:46:00 +01:00
Sophtli b98397d17a Edit README.md 2025-02-10 16:48:57 +00:00
Sophtli 70b745b63e Edit README.md 2025-02-10 16:48:03 +00:00
Sophtli 9cb77fe9ff Edit README.md 2025-02-10 16:47:25 +00:00
Sophtli ca7a3dde58 small fixes and description 2025-02-10 17:43:14 +01:00
Sophtli 1ea9bb36c6 small changes, fix lang in flatpak 2025-02-06 18:45:08 +01:00
Sophtli 46efd54ad8 Edit README.md 2025-02-06 14:31:42 +00:00
Sophtli 7d4bad1875 change type to git 2025-02-06 14:04:15 +01:00
Sophtli 77b6240463 test changes 2025-02-06 14:03:25 +01:00
Sophtli f8df9efafd cleanup 2025-02-06 02:09:27 +01:00
Sophtli 12007042c2 Edit README.md 2025-02-06 00:22:50 +00:00
Sophtli af2d8aff27 test ci 2025-02-06 00:58:51 +01:00
Sophtli 7804069a76 test ci 2025-02-06 00:57:53 +01:00
Sophtli 7143160614 test ci 2025-02-06 00:45:08 +01:00
Sophtli 0ce8f13639 test ci 2025-02-06 00:36:01 +01:00
Sophtli 7d7e269147 set ci stage 2025-02-06 00:14:13 +01:00
Sophtli 2179a302be remove ci 2025-02-06 00:12:16 +01:00
Sophtli e14cadcd7b test ci 2025-02-06 00:07:22 +01:00
Sophtli 96ae902f99 test ci 2025-02-06 00:06:14 +01:00
Sophtli 2e92dcffb7 test ci 2025-02-06 00:00:58 +01:00
Sophtli b76cc8f9ea test ci 2025-02-05 23:56:24 +01:00
Sophtli 280773ff8d test ci 2025-02-05 23:53:17 +01:00
Sophtli 4eea278113 test ci 2025-02-05 23:47:55 +01:00
Sophtli e7a4ec91f9 test ci 2025-02-05 23:44:41 +01:00
Sophtli f4b6e525e0 Edit README.md 2025-02-05 19:59:11 +00:00
Sophtli 600e255b91 Edit README.md 2025-02-05 19:58:57 +00:00
Sophtli c673ae63fe Edit gitlab-ci.yml 2025-02-05 19:57:53 +00:00
Sophtli b4d8f9d096 replace deprecated classes, update code, fix errors, add missing stuff 2025-02-05 20:52:07 +01:00
Tobias Krause 81e353b449 First project logo 2023-01-28 23:04:54 +00:00
Tobias Krause 51144e1854 Initial commit 2023-01-27 22:32:07 +01:00
15 changed files with 61 additions and 105 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ docs:
- ./Flashcards.pdf - ./Flashcards.pdf
flatpak: flatpak:
image: quay.io/gnome_infrastructure/gnome-runtime-images:gnome-49 image: quay.io/gnome_infrastructure/gnome-runtime-images:gnome-48
stage: build stage: build
variables: variables:
APP_ID: "li.sopht.Flashcards" APP_ID: "li.sopht.Flashcards"
View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

-6
View File
@@ -1,6 +0,0 @@
electronic:
type: Web
title: Ishkur's Guide to Electronic Music
serial-number: v2.5
author: Ishkur
url: { value: http://www.techno.org/electronic-music-guide/, date: 2020-11-30 }
+3 -13
View File
@@ -4,24 +4,15 @@
title: "Karteikarten-Anwendung in C mit GTK4 und Libadwaita", title: "Karteikarten-Anwendung in C mit GTK4 und Libadwaita",
subtitle: "Hardwarenahe Programmierung", subtitle: "Hardwarenahe Programmierung",
authors: ( authors: (
( "Sophie Krause",
name: "Sophie Krause",
id: "18103387"
),
), ),
profs: ( profs: (
"Prof. Dr. rer. nat. Peter Gerwinski", "Prof. Dr. Gerwinski",
), ),
submitted_at: none, logo: "BO_Logo.svg"
logo: "BO.svg"
) )
= Einleitung = Einleitung
Das Projekt behandelt die Entwicklung einer typischen Anwendung für die GNOME-Desktop-Umgebung unter Linux.
Dementsprechend wird die Anwendung mit GTK4 und Libadwaita entwickelt, um ein natives Erlebnis zu erzielen.
Da GTK in C geschrieben ist, wird ebenfalls in dieser Sprache programmiert.
Als Thema der Anwendung wurde eine Karteikarten-App gewählt, da diese gut für die Entwicklung einer Desktop-Anwendung geeignet ist und ebenfalls eine Datenbank benötigt.
#pagebreak() #pagebreak()
= Konzept & Tools = Konzept & Tools
@@ -40,7 +31,6 @@ Als Thema der Anwendung wurde eine Karteikarten-App gewählt, da diese gut für
== Datenbank == Datenbank
== UI == UI
=== Layout === Layout
== Logik == Logik
+3 -23
View File
@@ -1,8 +1,8 @@
#import "@preview/hydra:0.6.1": hydra #import "@preview/hydra:0.6.1": hydra
#let project(title: "", subtitle: "", authors: ((name: "", id: ""),), profs: ("",), submitted_at: none, logo: none, body) = { #let project(title: "", subtitle: "", authors: (), profs: (), logo: none, body) = {
// Basic properties // Basic properties
set document(author: "a", title: title) set document(author: authors, title: title)
set text(lang: "de") set text(lang: "de")
set heading(numbering: "1.1") set heading(numbering: "1.1")
@@ -27,37 +27,17 @@
set align(left) set align(left)
// Author // Author
let authors_title
if authors.len() == 1 {
authors_title = "Autor*in"
} else {
authors_title = "Autor*innen"
}
text(weight: 700, authors_title + " (Matrikelnummer):")
grid( grid(
gutter: 1em, gutter: 1em,
..authors.map(author => author.name + " (" + author.id + ")").flatten() ..authors,
) )
// Profs // Profs
let profs_title
if profs.len() == 1 {
profs_title = "Prüfer*in"
} else {
profs_title = "Prüfer*innen"
}
text(weight: 700, profs_title + ":")
grid( grid(
gutter: 1em, gutter: 1em,
..profs, ..profs,
) )
// Abgabedatum
if submitted_at != none {
text(weight: 700, "Abgabedatum: ")
text(submitted_at.display("[day].[month].[year]"))
}
// Table of contents // Table of contents
set align(left) set align(left)
set page(numbering: "I", number-align: center) set page(numbering: "I", number-align: center)
+2 -2
View File
@@ -1,7 +1,7 @@
{ {
"id": "li.sopht.Flashcards", "id": "li.sopht.Flashcards",
"runtime": "org.gnome.Platform", "runtime": "org.gnome.Platform",
"runtime-version": "49", "runtime-version": "48",
"sdk": "org.gnome.Sdk", "sdk": "org.gnome.Sdk",
"command": "flashcards", "command": "flashcards",
"separate-locales": false, "separate-locales": false,
@@ -33,7 +33,7 @@
{ {
"type": "git", "type": "git",
"url": "https://gitlab.gnome.org/jwestman/blueprint-compiler", "url": "https://gitlab.gnome.org/jwestman/blueprint-compiler",
"tag": "v0.18.0" "tag": "v0.16.0"
} }
] ]
}, },
+14 -16
View File
@@ -1,13 +1,12 @@
project( project('flashcards', 'c',
'flashcards', 'c', version: '1.0.0',
version : '1.0.0', meson_version: '>= 1.0.0',
meson_version : '>= 1.0.0', default_options: ['warning_level=2', 'c_std=gnu23'],
default_options : ['warning_level=2', 'c_std=gnu23'],
) )
flashcards_deps = [ flashcards_deps = [
dependency('gtk4'), dependency('gtk4'),
dependency('libadwaita-1', version : '>= 1.7'), dependency('libadwaita-1', version: '>= 1.6'),
dependency('sqlite3'), dependency('sqlite3'),
] ]
@@ -22,21 +21,20 @@ cc = meson.get_compiler('c')
config_h = configuration_data() config_h = configuration_data()
config_h.set_quoted('PACKAGE_VERSION', meson.project_version()) config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
config_h.set_quoted('GETTEXT_PACKAGE', meson.project_name()) config_h.set_quoted('GETTEXT_PACKAGE', 'flashcards')
config_h.set_quoted('LOCALEDIR', get_option('prefix') / get_option('localedir')) config_h.set_quoted('LOCALEDIR', get_option('prefix') / get_option('localedir'))
configure_file(output : 'config.h', configuration : config_h) configure_file(output: 'config.h', configuration: config_h)
add_project_arguments(['-I' + meson.project_build_root()], language : 'c') add_project_arguments(['-I' + meson.project_build_root()], language: 'c')
executable( executable('flashcards',
meson.project_name(),
sourcefiles, sourcefiles,
resources, resources,
dependencies : flashcards_deps, dependencies: flashcards_deps,
install : true install: true
) )
gnome.post_install( gnome.post_install(
glib_compile_schemas : true, glib_compile_schemas: true,
gtk_update_icon_cache : true, gtk_update_icon_cache: true,
update_desktop_database : true, update_desktop_database: true,
) )
+4 -7
View File
@@ -1,15 +1,12 @@
# Copyright (C) 2025 Sophie Krause
#
#, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: flashcards\n" "Project-Id-Version: flashcards\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-03 14:48+0200\n" "POT-Creation-Date: 2025-07-03 14:48+0200\n"
"PO-Revision-Date: 2025-10-06 14:36+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Sophie Krause\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: de\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: de\n" "Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
+5 -2
View File
@@ -1,4 +1,7 @@
# Copyright (C) 2025 Sophie Krause # SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the flashcards package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
#, fuzzy #, fuzzy
msgid "" msgid ""
@@ -6,7 +9,7 @@ msgstr ""
"Project-Id-Version: flashcards\n" "Project-Id-Version: flashcards\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-07-03 14:48+0200\n" "POT-Creation-Date: 2025-07-03 14:48+0200\n"
"PO-Revision-Date: 2025-10-06 14:36+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n" "Language: \n"
+1 -1
View File
@@ -1 +1 @@
i18n.gettext(meson.project_name(), preset : 'glib') i18n.gettext(meson.project_name(), preset: 'glib')
+6 -12
View File
@@ -1,12 +1,9 @@
compile_schemas = find_program('glib-compile-schemas', required : false, disabler : true) compile_schemas = find_program('glib-compile-schemas', required : false, disabler : true)
test( test('Validate schema file',
'Validate schema file',
compile_schemas, compile_schemas,
args : ['--strict', '--dry-run', meson.current_source_dir()] args : ['--strict', '--dry-run', meson.current_source_dir()])
)
install_data( install_data('li.sopht.Flashcards.gschema.xml',
'li.sopht.Flashcards.gschema.xml',
install_dir : get_option('datadir') / 'glib-2.0' / 'schemas' install_dir : get_option('datadir') / 'glib-2.0' / 'schemas'
) )
@@ -33,10 +30,8 @@ appstream_file = i18n.merge_file(
) )
appstreamcli = find_program('appstreamcli', required : false, disabler : true) appstreamcli = find_program('appstreamcli', required : false, disabler : true)
test( test('Validate appstream file', appstreamcli,
'Validate appstream file', appstreamcli, args : ['validate', '--no-net', '--explain', appstream_file])
args : ['validate', '--no-net', '--explain', appstream_file]
)
service_conf = configuration_data() service_conf = configuration_data()
service_conf.set('bindir', get_option('prefix') / get_option('bindir')) service_conf.set('bindir', get_option('prefix') / get_option('bindir'))
@@ -49,8 +44,7 @@ configure_file(
subdir('ui') subdir('ui')
resources = gnome.compile_resources( resources = gnome.compile_resources('resources',
'resources',
'flashcards.gresource.xml', 'flashcards.gresource.xml',
dependencies : [blueprints, appstream_file], dependencies : [blueprints, appstream_file],
c_name : 'flashcards' c_name : 'flashcards'
+1 -2
View File
@@ -1,5 +1,4 @@
blueprints = custom_target( blueprints = custom_target('blueprints',
'blueprints',
input : files( input : files(
'window.blp', 'window.blp',
'create-category.blp', 'create-category.blp',
+1
View File
@@ -69,6 +69,7 @@ database_save_category (sqlite3 *db, const char *c)
{ {
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
fprintf (stdout, "%s\n", c);
int rc = sqlite3_prepare_v2 (db, "INSERT INTO categories (name) VALUES(?)", int rc = sqlite3_prepare_v2 (db, "INSERT INTO categories (name) VALUES(?)",
-1, &stmt, nullptr); -1, &stmt, nullptr);
if (rc == SQLITE_OK) if (rc == SQLITE_OK)
+1
View File
@@ -52,6 +52,7 @@ load_categories (FlashcardsAppWindow *win)
for (guint i = 0; i < win->categories->len; i++) for (guint i = 0; i < win->categories->len; i++)
{ {
category c = g_array_index (win->categories, category, i); category c = g_array_index (win->categories, category, i);
printf ("%d: %s\n", c.id, c.name);
GtkWidget *child = gtk_list_box_row_new (); GtkWidget *child = gtk_list_box_row_new ();
GtkWidget *label = gtk_label_new (c.name); GtkWidget *label = gtk_label_new (c.name);
+1 -2
View File
@@ -1,5 +1,4 @@
sourcefiles = files( sourcefiles = files('main.c',
'main.c',
'flashcardsapp.c', 'flashcardsapp.c',
'flashcardsappwin.c', 'flashcardsappwin.c',
'create-category.c', 'create-category.c',