-
Notifications
You must be signed in to change notification settings - Fork 56
Settings
lib/settings/ — הגדרות האפליקציה: מנוע, מסך, שירותים נלווים.
| תיקייה | תוכן |
|---|---|
engine/ |
SettingsBloc / Repository / State / Event |
tabs/ |
לשוניות המסך |
panels/ |
כרטיסי הגדרה בתוך לשוניות |
dialogs/ |
דיאלוגים (מיקום ספרייה, סיסמה ועוד) |
search/ |
חיפוש בתוך ההגדרות |
services/ |
גיבוי, תיקיות מותאמות, ניקוד, פר־ספר, מצב מוגן |
view/ |
settings_screen.dart
|
-
SettingsBloc— ~60 אירועיUpdate*; כל handler שומר ב־repository ופולטcopyWith. שינויים בגופן/ניקוד/פיסוק/קריאה רציפה מפעילים ניקוי הגדרות פר־ספר שהפכו מיותרות. -
SettingsRepository— מגדיר את כל מפתחות ה־key-*. עטוף ב־SettingsWrapper(לצורך בדיקות) מעלflutter_settings_screensבאחסון Hive. כותב ברירות מחדל בהפעלה ראשונה, מנהל קיצורי מקלדת (מיזוג ברירות מחדל + overrides), ושומר hash סיסמה (SHA-256) למצב המוגן. -
SettingsState— עשרות שדות: מצב כהה / מעקב אחר מערכת ההפעלה, צבעי seed, גופנים וגדלים, רוחב טקסט מרבי, הצגת ספריות חיצוניות, ניקוד/פיסוק/קריאה רציפה כברירת מחדל, מצב מנותק, עדכונים, מיזוג ספרים אישיים לעץ, ניהול כלים מוצמדים, מצב מוגן.
שבע לשוניות: מראה / כתב / ספריה / כלים / קיצורים / מערכת / אודות. רספונסיבי — במובייל תפריט וחזרה, בדסקטופ sidebar 210px. כולל חיפוש חוצה־לשוניות (SettingsSearchIndex) שמנווט לכרטיס ומבזיק אותו (דרך cardId של SettingsCard). עטוף ב־SaferModeGuard.
SettingsScreenController — פתיחת לשונית ספציפית מקוד (למשל מ־deep link).
פונקציות טהורות: הסרת ניקוד = defaultRemoveNikud && (removeNikudFromTanach || !isTanach) — בתנ"ך מסירים רק אם הופעל במפורש. כולל פונקציות שקובעות אם שינוי הגדרה מחייב טעינה מחדש של ספר פתוח.
- קובץ JSON לכל ספר תחת
per_book_settings/settings_<sha1>.json; מפתח הספר מבחין אישי/רשמי. - תור נעילה סדרתי פר־קובץ נגד דריסות מקביליות.
-
cleanupRedundantSettingsמסיר ערכים ששווים לברירת המחדל הגלובלית — כדי שהספר יירש שינויים עתידיים. - מודלים:
TextBookPerBookSettings(גופן, מפרשים, ניקוד/פיסוק, קריאה רציפה, רוחבי טורים בצורת הדף) ו־PdfBookPerBookSettings(זום, מפרשים, מצב פריסה).
SaferModeGuard עוטף מסכים מוגנים ודורש סיסמה (hash SHA-256). אי אפשר להסיר סיסמה כשהמצב פעיל — יש להשבית קודם.
דיאלוג "העבר תוכן / שנה מיקום בלבד / חזרה לברירת מחדל". performLibraryMove — העברה עמידת־קריסות: סריקה ← העתקה ל־staging ← קידום ← עדכון מפתחות נתיבים ← מיפוי נתיבי טאבים פתוחים (remapBookPaths) ← סגירת DB ← פתיחת אינדקס מחדש ← מחיקת מקור אחרי restart, עם rollback מלא בכשל. שימו לב: אינדקס הטקסט שורד העברה (מפתח id), אינדקס PDF נשבר (מפתח נתיב) ומנוקה.
| פלטפורמה | שורש הנתונים |
|---|---|
| Windows | %APPDATA%\otzaria |
| Linux | ~/.local/share/otzaria |
| macOS | ~/Library/Application Support/otzaria |
| Android | Documents |
| מצב נייד | ליד קובץ ה־exe |
תחת השורש: backups/, per_book_settings/, plugins/, logs/.
📖 מדריך למשתמש
- התחלת העבודה
- הספרייה
- קריאת ספר
- קריאת PDF
- חיפוש
- איתור מקורות
- טאבים ושולחנות
- סימניות והערות
- ספרים אישיים
- הגדרות
- גיבוי ושחזור
- עדכונים
- תוספים
- כלים
- קישורי עומק
🛠️ למפתחים — יסודות
נתונים וספרייה
קריאה
חיפוש
אישי ומערכת
עיצוב ו־UI