Skip to content

Commit 9883a56

Browse files
Merge branch 'saber-notes:main' into main
2 parents 29839b2 + 2e35dd5 commit 9883a56

File tree

81 files changed

+563
-302
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+563
-302
lines changed

.github/docker/.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*
2+
!.gitignore
3+
!Dockerfile

.github/docker/Dockerfile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
FROM ubuntu:latest
2+
3+
# Set non-interactive mode for installations
4+
ENV DEBIAN_FRONTEND=noninteractive
5+
6+
# Install apt dependencies
7+
RUN apt-get update
8+
# Flutter dependencies
9+
RUN apt-get install -y curl git unzip xz-utils zip libglu1-mesa
10+
# Saber dependencies
11+
RUN apt-get install -y libgtk-3-dev libx11-dev pkg-config cmake ninja-build libblkid-dev libsecret-1-dev libjsoncpp-dev ghostscript libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libunwind-dev webkit2gtk-4.1-dev
12+
RUN apt-get clean
13+
14+
# Install Flutter
15+
RUN git clone https://github.com/flutter/flutter.git /opt/flutter --branch stable
16+
ENV PUB_CACHE=/root/.pub-cache
17+
RUN mkdir -p /root/.pub-cache/bin/
18+
ENV PATH="/opt/flutter/bin:/root/.pub-cache/bin:$PATH"
19+
RUN flutter precache --no-universal --linux
20+
RUN flutter doctor
21+
22+
# Install rustup
23+
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
24+
ENV PATH="/root/.cargo/bin:$PATH"
25+
RUN rustup --version
26+
27+
WORKDIR /app
28+
29+
# Default command: open a shell
30+
CMD ["/bin/bash"]

.github/workflows/android-play-store.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ jobs:
2626
uses: actions/cache@v4
2727
with:
2828
path: |
29-
build
29+
.dart_tool/
30+
build/
31+
.flutter-plugins
32+
.flutter-plugins-dependencies
33+
pubspec.lock
3034
key: ${{ runner.OS }}-saber-${{ hashFiles('**/pubspec.lock') }}-${{ hashFiles('**/*.dart') }}
3135
restore-keys: |
3236
${{ runner.OS }}-saber-

.github/workflows/android.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,11 @@ jobs:
2828
uses: actions/cache@v4
2929
with:
3030
path: |
31-
build
31+
.dart_tool/
32+
build/
33+
.flutter-plugins
34+
.flutter-plugins-dependencies
35+
pubspec.lock
3236
key: ${{ runner.OS }}-saber-${{ hashFiles('**/pubspec.lock') }}-${{ hashFiles('**/*.dart') }}
3337
restore-keys: |
3438
${{ runner.OS }}-saber-
@@ -105,7 +109,11 @@ jobs:
105109
uses: actions/cache@v4
106110
with:
107111
path: |
108-
build
112+
.dart_tool/
113+
build/
114+
.flutter-plugins
115+
.flutter-plugins-dependencies
116+
pubspec.lock
109117
key: ${{ runner.OS }}-saberfoss-${{ hashFiles('**/pubspec.lock') }}-${{ hashFiles('**/*.dart') }}
110118
restore-keys: |
111119
${{ runner.OS }}-saberfoss-

.github/workflows/ios.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ jobs:
3232
uses: actions/cache@v4
3333
with:
3434
path: |
35-
build
35+
.dart_tool/
36+
build/
37+
.flutter-plugins
38+
.flutter-plugins-dependencies
39+
pubspec.lock
3640
key: ${{ runner.OS }}-saber-${{ hashFiles('**/pubspec.lock') }}-${{ hashFiles('**/*.dart') }}
3741
restore-keys: |
3842
${{ runner.OS }}-saber-

.github/workflows/linux.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,11 @@ jobs:
4343
uses: actions/cache@v4
4444
with:
4545
path: |
46-
build
46+
.dart_tool/
47+
build/
48+
.flutter-plugins
49+
.flutter-plugins-dependencies
50+
pubspec.lock
4751
key: ${{ runner.OS }}-${{ matrix.arch.cache-name }}-${{ hashFiles('**/pubspec.lock') }}-${{ hashFiles('**/*.dart') }}
4852
restore-keys: |
4953
${{ runner.OS }}-${{ matrix.arch.cache-name }}-

.github/workflows/macos.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ jobs:
3232
uses: actions/cache@v4
3333
with:
3434
path: |
35-
build
35+
.dart_tool/
36+
build/
37+
.flutter-plugins
38+
.flutter-plugins-dependencies
39+
pubspec.lock
3640
key: ${{ runner.OS }}-saber-${{ hashFiles('**/pubspec.lock') }}-${{ hashFiles('**/*.dart') }}
3741
restore-keys: |
3842
${{ runner.OS }}-saber-

.github/workflows/tests.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@ jobs:
2222
uses: actions/cache@v4
2323
with:
2424
path: |
25-
build
25+
.dart_tool/
26+
build/
27+
.flutter-plugins
28+
.flutter-plugins-dependencies
29+
pubspec.lock
2630
key: ${{ runner.OS }}-saber-${{ hashFiles('**/pubspec.lock') }}-${{ hashFiles('**/*.dart') }}
2731
restore-keys: |
2832
${{ runner.OS }}-saber-

.github/workflows/windows.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@ jobs:
2727
uses: actions/cache@v4
2828
with:
2929
path: |
30-
build
30+
.dart_tool/
31+
build/
32+
.flutter-plugins
33+
.flutter-plugins-dependencies
34+
pubspec.lock
3135
key: ${{ runner.OS }}-saber-${{ hashFiles('**/pubspec.lock') }}-${{ hashFiles('**/*.dart') }}
3236
restore-keys: |
3337
${{ runner.OS }}-saber-

.vscode/launch.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"name": "Saber",
9+
"request": "launch",
10+
"type": "dart"
11+
},
12+
{
13+
"name": "Saber (profile mode)",
14+
"request": "launch",
15+
"type": "dart",
16+
"flutterMode": "profile"
17+
},
18+
{
19+
"name": "Saber (release mode)",
20+
"request": "launch",
21+
"type": "dart",
22+
"flutterMode": "release"
23+
}
24+
]
25+
}

.vscode/settings.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
"editor.formatOnSave": true,
77
"dart.doNotFormat": [
88
"**/submodules/**",
9-
"**/lib/i18n/strings.g.dart"
9+
"**/lib/i18n/**.g.dart"
1010
],
1111
"dart.analysisExcludedFolders": [
1212
"submodules"
13-
]
13+
],
14+
"cmake.ignoreCMakeListsMissing": true
1415
}

README-ar.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,8 +343,8 @@ If you like Saber, please consider supporting it by:
343343
[google_play]: https://play.google.com/store/apps/details?id=com.adilhanney.saber
344344
[snap]: https://snapcraft.io/saber
345345
[app_store]: https://apps.apple.com/us/app/saber/id1671523739
346-
[download_windows]: https://github.com/saber-notes/saber/releases/download/v0.25.4/SaberInstaller_v0.25.4.exe
347-
[download_appimage]: https://github.com/saber-notes/saber/releases/download/v0.25.4/Saber-0.25.4-x86_64.AppImage
346+
[download_windows]: https://github.com/saber-notes/saber/releases/download/v0.25.5/SaberInstaller_v0.25.5.exe
347+
[download_appimage]: https://github.com/saber-notes/saber/releases/download/v0.25.5/Saber-0.25.5-x86_64.AppImage
348348

349349
[nextcloud]: https://nc.saber.adil.hanney.org/
350350

README-cs.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@
2424
alt="Stáhnout jako AppImage"
2525
height=50>][download_appimage]
2626

27-
Unofficial packages:
27+
Neoficiální balíčky:
2828
[<img src="https://github.com/saber-notes/saber/blob/main/assets_raw/badges/snap-badge.svg"
2929
alt="Stáhnout ze Snap Store"
3030
height=50>][snap]
3131
&nbsp;
3232
[<img src="https://github.com/saber-notes/saber/blob/main/assets_raw/badges/copr.png"
33-
alt="Get it from Fedora Copr"
33+
alt="Získat z Fedora Copr"
3434
height=50>][copr]
3535

3636
[English](https://github.com/saber-notes/saber/blob/main/README.md) |
@@ -352,8 +352,9 @@ Pokud máte rádi Saber, zvažte prosím jeho podporu pomocí
352352
[google_play]: https://play.google.com/store/apps/details?id=com.adilhanney.saber
353353
[snap]: https://snapcraft.io/saber
354354
[app_store]: https://apps.apple.com/cz/app/saber/id1671523739
355-
[download_windows]: https://github.com/saber-notes/saber/releases/download/v0.25.4/SaberInstaller_v0.25.4.exe
356-
[download_appimage]: https://github.com/saber-notes/saber/releases/download/v0.25.4/Saber-0.25.4-x86_64.AppImage
355+
[download_windows]: https://github.com/saber-notes/saber/releases/download/v0.25.5/SaberInstaller_v0.25.5.exe
356+
[download_appimage]: https://github.com/saber-notes/saber/releases/download/v0.25.5/Saber-0.25.5-x86_64.AppImage
357+
[copr]: https://copr.fedorainfracloud.org/coprs/jyo64/Saber/
357358

358359
[nextcloud]: https://nc.saber.adil.hanney.org/
359360

README-de.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,8 +338,8 @@ Falls dir Saber gefällt, bitte denke darüber nach das Projekt wie folgt zu unt
338338
[google_play]: https://play.google.com/store/apps/details?id=com.adilhanney.saber
339339
[snap]: https://snapcraft.io/saber
340340
[app_store]: https://apps.apple.com/us/app/saber/id1671523739
341-
[download_windows]: https://github.com/saber-notes/saber/releases/download/v0.25.4/SaberInstaller_v0.25.4.exe
342-
[download_appimage]: https://github.com/saber-notes/saber/releases/download/v0.25.4/Saber-0.25.4-x86_64.AppImage
341+
[download_windows]: https://github.com/saber-notes/saber/releases/download/v0.25.5/SaberInstaller_v0.25.5.exe
342+
[download_appimage]: https://github.com/saber-notes/saber/releases/download/v0.25.5/Saber-0.25.5-x86_64.AppImage
343343

344344
[nextcloud]: https://nc.saber.adil.hanney.org/
345345

README-zh-CN.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,8 +343,8 @@ Windows 安装器使用 [Inno Setup](https://jrsoftware.org/isinfo.php) 创建
343343
[google_play]: https://play.google.com/store/apps/details?id=com.adilhanney.saber
344344
[snap]: https://snapcraft.io/saber
345345
[app_store]: https://apps.apple.com/us/app/saber/id1671523739
346-
[download_windows]: https://github.com/saber-notes/saber/releases/download/v0.25.4/SaberInstaller_v0.25.4.exe
347-
[download_appimage]: https://github.com/saber-notes/saber/releases/download/v0.25.4/Saber-0.25.4-x86_64.AppImage
346+
[download_windows]: https://github.com/saber-notes/saber/releases/download/v0.25.5/SaberInstaller_v0.25.5.exe
347+
[download_appimage]: https://github.com/saber-notes/saber/releases/download/v0.25.5/Saber-0.25.5-x86_64.AppImage
348348

349349
[nextcloud]: https://nc.saber.adil.hanney.org/
350350

README-zh-TW.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -336,8 +336,8 @@ Windows 安裝程式是使用 [Inno Setup](https://jrsoftware.org/isinfo.php)
336336
[google_play]: https://play.google.com/store/apps/details?id=com.adilhanney.saber
337337
[snap]: https://snapcraft.io/saber
338338
[app_store]: https://apps.apple.com/us/app/saber/id1671523739
339-
[download_windows]: https://github.com/saber-notes/saber/releases/download/v0.25.4/SaberInstaller_v0.25.4.exe
340-
[download_appimage]: https://github.com/saber-notes/saber/releases/download/v0.25.4/Saber-0.25.4-x86_64.AppImage
339+
[download_windows]: https://github.com/saber-notes/saber/releases/download/v0.25.5/SaberInstaller_v0.25.5.exe
340+
[download_appimage]: https://github.com/saber-notes/saber/releases/download/v0.25.5/Saber-0.25.5-x86_64.AppImage
341341
[nextcloud]: https://nc.saber.adil.hanney.org/
342342
[privacy]: https://github.com/saber-notes/saber/blob/main/privacy_policy.md
343343
[license]: https://github.com/saber-notes/saber/blob/main/LICENSE.md

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -358,8 +358,8 @@ If you like Saber, please consider supporting it by:
358358
[google_play]: https://play.google.com/store/apps/details?id=com.adilhanney.saber
359359
[snap]: https://snapcraft.io/saber
360360
[app_store]: https://apps.apple.com/us/app/saber/id1671523739
361-
[download_windows]: https://github.com/saber-notes/saber/releases/download/v0.25.4/SaberInstaller_v0.25.4.exe
362-
[download_appimage]: https://github.com/saber-notes/saber/releases/download/v0.25.4/Saber-0.25.4-x86_64.AppImage
361+
[download_windows]: https://github.com/saber-notes/saber/releases/download/v0.25.5/SaberInstaller_v0.25.5.exe
362+
[download_appimage]: https://github.com/saber-notes/saber/releases/download/v0.25.5/Saber-0.25.5-x86_64.AppImage
363363
[copr]: https://copr.fedorainfracloud.org/coprs/jyo64/Saber/
364364

365365
[nextcloud]: https://nc.saber.adil.hanney.org/

flatpak/com.adilhanney.saber.metainfo.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,14 @@
214214
</screenshots>
215215

216216
<releases>
217+
<release version="0.25.5" type="development" date="2025-04-18">
218+
<description>
219+
<ul>
220+
<li>Fixed some UI elements taking up too much space on small-ish screens</li>
221+
<li>Made the "dots" background pattern obey the line thickness setting</li>
222+
</ul>
223+
</description>
224+
</release>
217225
<release version="0.25.4" type="development" date="2025-02-22">
218226
<description>
219227
You can now customize the line thickness of your background pattern,

installers/desktop_inno_script.iss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
33

44
#define MyAppName "Saber"
5-
#define MyAppVersion "0.25.4"
5+
#define MyAppVersion "0.25.5"
66
#define MyAppPublisher "Adil Hanney"
77
#define MyAppURL "https://github.com/saber-notes/saber"
88
#define MyAppExeName "saber.exe"

ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
ignoresPersistentStateOnLaunch = "NO"
4949
debugDocumentVersioning = "YES"
5050
debugServiceExtension = "internal"
51+
enableGPUValidationMode = "1"
5152
allowLocationSimulation = "YES">
5253
<BuildableProductRunnable
5354
runnableDebuggingMode = "0">

lib/components/home/preview_card.dart

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,9 @@ import 'dart:io';
44
import 'package:animations/animations.dart';
55
import 'package:flutter/foundation.dart';
66
import 'package:flutter/material.dart';
7-
import 'package:go_router/go_router.dart';
87
import 'package:saber/components/canvas/canvas_preview.dart';
98
import 'package:saber/components/canvas/invert_widget.dart';
109
import 'package:saber/components/home/sync_indicator.dart';
11-
import 'package:saber/components/navbar/responsive_navbar.dart';
1210
import 'package:saber/data/file_manager/file_manager.dart';
1311
import 'package:saber/data/prefs.dart';
1412
import 'package:saber/data/routes.dart';
@@ -198,17 +196,9 @@ class _PreviewCardState extends State<PreviewCard> {
198196
routeSettings: RouteSettings(
199197
name: RoutePaths.editFilePath(widget.filePath),
200198
),
201-
onClosed: (_) async {
199+
onClosed: (_) {
202200
thumbnail.image?.evict();
203201
thumbnail.markAsChanged();
204-
205-
await Future.delayed(transitionDuration);
206-
if (!context.mounted) return;
207-
if (!GoRouterState.of(context)
208-
.uri
209-
.toString()
210-
.startsWith(RoutePaths.prefixOfHome)) return;
211-
ResponsiveNavbar.setAndroidNavBarColor(theme);
212202
},
213203
);
214204
},

lib/components/navbar/responsive_navbar.dart

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import 'package:flutter/material.dart';
2-
import 'package:flutter/services.dart';
32
import 'package:go_router/go_router.dart';
43
import 'package:path_to_regexp/path_to_regexp.dart';
54
import 'package:saber/components/canvas/save_indicator.dart';
@@ -24,21 +23,6 @@ class ResponsiveNavbar extends StatefulWidget {
2423
State<ResponsiveNavbar> createState() => _ResponsiveNavbarState();
2524

2625
static bool isLargeScreen = true;
27-
static void setAndroidNavBarColor(ThemeData theme) async {
28-
await null;
29-
30-
final brightness = theme.brightness;
31-
final otherBrightness =
32-
brightness == Brightness.dark ? Brightness.light : Brightness.dark;
33-
final overlayStyle = brightness == Brightness.dark
34-
? SystemUiOverlayStyle.dark
35-
: SystemUiOverlayStyle.light;
36-
37-
SystemChrome.setSystemUIOverlayStyle(overlayStyle.copyWith(
38-
systemNavigationBarColor: Colors.transparent,
39-
systemNavigationBarIconBrightness: otherBrightness,
40-
));
41-
}
4226
}
4327

4428
class _ResponsiveNavbarState extends State<ResponsiveNavbar> {
@@ -84,8 +68,6 @@ class _ResponsiveNavbarState extends State<ResponsiveNavbar> {
8468
LayoutSize.tablet => true,
8569
};
8670

87-
ResponsiveNavbar.setAndroidNavBarColor(Theme.of(context));
88-
8971
if (ResponsiveNavbar.isLargeScreen) {
9072
return Scaffold(
9173
body: Row(children: [

0 commit comments

Comments
 (0)