feat(app): the studyset screen with its topics, the tree's own screen
A studyset's screen, as decided with the tree (2026-09-30/10-01):
- A breadcrumb from the library down to the studyset; its steps go up
(replacing the location, so back leads further up), and steps that
don't fit fold into a "…" listing them, nearest first.
- From expanded windows on, two columns: the description over the topics,
the flashcards beside them, Study and Add material in the app bar. Below
that, the topics are in a drawer, opened from a bar at the bottom that
also holds Study and Add material and slides away while reading onwards;
the back button stays where a drawer would have taken its place.
- The topics: "All topics" for the whole studyset, then the studysets
inside it in their order, each with the study it invites, what it holds
and its options (edit, delete), opening on top of this screen; a switch
rearranges them by dragging; "New sub-studyset" creates one inside.
- Study covers the studyset with everything inside it ("Learn 12" while
something is due). Add material offers flashcards for now.
- Options: Edit (the sheet, now with the description, edited in the whole
window, and for a studyset inside another the colour of the one it is
in, which a new one takes at first), Move to… (the tree and the top
level, without the studyset itself and what is inside it), Archive or
Unarchive with Undo, Delete with Undo, which closes the screen.
- The description cut short when long, the whole a tap away; the licence
as the last line, linking to its text where that is known.
The list's bloc, scoped to a parent, lists its children, works out the
studyset's own progress, creates inside it, reorders and moves. The card
list leaves adding and studying to the screen. The inline editing of the
title and description, and its bloc, are gone.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
9c2960f49d
commit
31d87e8415
1 changed files with 2597 additions and 541 deletions
|
|
@ -229,7 +229,7 @@ abstract class AppLocalizations {
|
|||
/// No description provided for @libraryDeleteMessage.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'It is deleted with its cards, on all your devices. You can undo this for a few seconds.'**
|
||||
/// **'It is deleted with everything inside it and all their cards, on all your devices. You can undo this for a few seconds.'**
|
||||
String get libraryDeleteMessage;
|
||||
|
||||
/// No description provided for @libraryDeleteConfirm.
|
||||
|
|
@ -394,6 +394,192 @@ abstract class AppLocalizations {
|
|||
/// **'Delete'**
|
||||
String get studysetMenuDelete;
|
||||
|
||||
/// No description provided for @studysetMenuMove.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Move to…'**
|
||||
String get studysetMenuMove;
|
||||
|
||||
/// No description provided for @studysetTabFlashcards.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Flashcards'**
|
||||
String get studysetTabFlashcards;
|
||||
|
||||
/// No description provided for @studysetFlashcardsEmpty.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No flashcards yet'**
|
||||
String get studysetFlashcardsEmpty;
|
||||
|
||||
/// No description provided for @studysetFlashcardsEmptyHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Add some to start studying.'**
|
||||
String get studysetFlashcardsEmptyHint;
|
||||
|
||||
/// No description provided for @studysetAddMaterial.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Add material'**
|
||||
String get studysetAddMaterial;
|
||||
|
||||
/// No description provided for @studysetCreateFlashcards.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Create flashcards'**
|
||||
String get studysetCreateFlashcards;
|
||||
|
||||
/// No description provided for @studysetStudy.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Study'**
|
||||
String get studysetStudy;
|
||||
|
||||
/// No description provided for @studysetLearnCount.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Learn {count}'**
|
||||
String studysetLearnCount(int count);
|
||||
|
||||
/// No description provided for @studysetOpenTopics.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Show topics'**
|
||||
String get studysetOpenTopics;
|
||||
|
||||
/// No description provided for @studysetTopics.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Topics'**
|
||||
String get studysetTopics;
|
||||
|
||||
/// No description provided for @studysetAllTopics.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'All topics'**
|
||||
String get studysetAllTopics;
|
||||
|
||||
/// No description provided for @studysetNewSubStudyset.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'New sub-studyset'**
|
||||
String get studysetNewSubStudyset;
|
||||
|
||||
/// No description provided for @studysetSubStudysetsEmpty.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'No sub-studysets yet.'**
|
||||
String get studysetSubStudysetsEmpty;
|
||||
|
||||
/// No description provided for @studysetSubStudysetsEmptyHint.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Break this studyset into milestones or lessons.'**
|
||||
String get studysetSubStudysetsEmptyHint;
|
||||
|
||||
/// No description provided for @studysetReorder.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Reorder'**
|
||||
String get studysetReorder;
|
||||
|
||||
/// No description provided for @studysetReorderDone.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Done'**
|
||||
String get studysetReorderDone;
|
||||
|
||||
/// No description provided for @studysetDragToReorder.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Drag to reorder'**
|
||||
String get studysetDragToReorder;
|
||||
|
||||
/// No description provided for @studysetMoveTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Move studyset to'**
|
||||
String get studysetMoveTitle;
|
||||
|
||||
/// No description provided for @studysetMoveTopLevel.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Top level'**
|
||||
String get studysetMoveTopLevel;
|
||||
|
||||
/// No description provided for @studysetMoveCurrent.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Where it is now'**
|
||||
String get studysetMoveCurrent;
|
||||
|
||||
/// No description provided for @studysetMoveConfirm.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Move'**
|
||||
String get studysetMoveConfirm;
|
||||
|
||||
/// No description provided for @studysetMoveShowInside.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Show what is inside'**
|
||||
String get studysetMoveShowInside;
|
||||
|
||||
/// No description provided for @studysetMoveHideInside.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Hide what is inside'**
|
||||
String get studysetMoveHideInside;
|
||||
|
||||
/// No description provided for @studysetMoved.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Moved to {destination}.'**
|
||||
String studysetMoved(String destination);
|
||||
|
||||
/// No description provided for @studysetReadMore.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Read more'**
|
||||
String get studysetReadMore;
|
||||
|
||||
/// No description provided for @studysetDescriptionTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Description'**
|
||||
String get studysetDescriptionTitle;
|
||||
|
||||
/// No description provided for @studysetDescriptionEditTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Edit description'**
|
||||
String get studysetDescriptionEditTitle;
|
||||
|
||||
/// No description provided for @studysetDescriptionSave.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Save'**
|
||||
String get studysetDescriptionSave;
|
||||
|
||||
/// No description provided for @studysetSheetDescription.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Description'**
|
||||
String get studysetSheetDescription;
|
||||
|
||||
/// No description provided for @studysetSheetDescriptionAdd.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Add a description'**
|
||||
String get studysetSheetDescriptionAdd;
|
||||
|
||||
/// No description provided for @studysetSheetInheritColor.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
/// **'Same color as the studyset it is in'**
|
||||
String get studysetSheetInheritColor;
|
||||
|
||||
/// No description provided for @exploreTitle.
|
||||
///
|
||||
/// In en, this message translates to:
|
||||
|
|
|
|||
Loading…
Reference in a new issue