Skip to content

Commit fc6b71b

Browse files
committed
fix: Bundle Icons For macOS
* macOS platform does not use XDG icons (or cosmic-icons), as a workaround for the time being, we will ship icons as part of the application bundle. * Update cargo dependencies. * Updated README.
1 parent d71e696 commit fc6b71b

26 files changed

+335
-100
lines changed

Cargo.lock

Lines changed: 77 additions & 55 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ Dependencies (Linux)
3939
- `libxkbcommon-dev`
4040
- `libcosmic`
4141
- `libsqlite3-dev`
42+
- `cosmic-icons`
4243

4344
Dependencies (macOS)
4445

justfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,10 @@ build-release-macos *args:
6464
lipo "target/aarch64-apple-darwin/release/{{name}}" -create -output "{{app-binary}}"
6565

6666
mkdir -p "{{app-binary-dir}}"
67-
mkdir -p "{{app-extras-dir}}"
67+
mkdir -p "{{app-extras-dir}}/icons/"
6868
cp -fRp "{{app-template}}" "{{app-dir}}"
6969
cp -fp "{{app-binary}}" "{{app-binary-dir}}"
70+
cp ./res/icons/* "{{app-extras-dir}}/icons/"
7071
touch -r "{{app-binary}}" "{{app-dir}}/{{app-name}}"
7172
echo "Created '{{app-name}}' in '{{app-dir}}'"
7273
git stash -- {{app-template-plist}}
Lines changed: 12 additions & 0 deletions
Loading

res/icons/contact-new-symbolic.svg

Lines changed: 10 additions & 0 deletions
Loading
Lines changed: 11 additions & 0 deletions
Loading

res/icons/dialog-warning-symbolic.svg

Lines changed: 11 additions & 0 deletions
Loading

res/icons/emblem-shared-symbolic.svg

Lines changed: 4 additions & 0 deletions
Loading
Lines changed: 11 additions & 0 deletions
Loading

res/icons/insert-text-symbolic.svg

Lines changed: 12 additions & 0 deletions
Loading

res/icons/mail-archive-symbolic.svg

Lines changed: 13 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading

res/icons/network-server-symbolic.svg

Lines changed: 13 additions & 0 deletions
Loading
Lines changed: 10 additions & 0 deletions
Loading

res/icons/text-x-generic-symbolic.svg

Lines changed: 11 additions & 0 deletions
Loading

res/icons/user-available-symbolic.svg

Lines changed: 11 additions & 0 deletions
Loading

res/icons/web-browser-symbolic.svg

Lines changed: 15 additions & 0 deletions
Loading
Lines changed: 11 additions & 0 deletions
Loading
Lines changed: 11 additions & 0 deletions
Loading

src/app.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use crate::pages::accounts::{add_account, edit_account, AppAccountsMessage, Page
1010
use crate::pages::bookmarks::{
1111
edit_bookmark, new_bookmark, view_notes, AppBookmarksMessage, PageBookmarksView,
1212
};
13+
use crate::utils::icons::load_icon;
1314
use cosmic::app::{Core, Task};
1415
use cosmic::cosmic_config::{self, CosmicConfigEntry, Update};
1516
use cosmic::cosmic_theme::{self, ThemeMode};
@@ -255,7 +256,7 @@ impl Application for Cosmicding {
255256
let dialog = match dialog_page {
256257
DialogPage::RemoveAccount(account) => {
257258
widget::dialog(fl!("remove") + " " + { &account.display_name })
258-
.icon(icon::from_name("dialog-warning-symbolic").size(58).icon())
259+
.icon(icon::icon(load_icon("dialog-warning-symbolic")).size(58))
259260
.body(fl!("remove-account-confirm"))
260261
.primary_action(
261262
widget::button::destructive(fl!("yes")).on_press_maybe(Some(
@@ -268,7 +269,7 @@ impl Application for Cosmicding {
268269
}
269270
DialogPage::RemoveBookmark(account, bookmark) => {
270271
widget::dialog(fl!("remove") + " " + { &bookmark.title })
271-
.icon(icon::from_name("dialog-warning-symbolic").size(58).icon())
272+
.icon(icon::icon(load_icon("dialog-warning-symbolic")).size(58))
272273
.body(fl!("remove-bookmark-confirm"))
273274
.primary_action(widget::button::destructive(fl!("yes")).on_press_maybe(Some(
274275
Message::CompleteRemoveDialog(account.clone(), Some(bookmark.clone())),

src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ mod models;
99
mod nav;
1010
mod pages;
1111
mod style;
12+
mod utils;
1213

1314
use crate::config::{Config, CONFIG_VERSION};
1415
use app::{Flags, APPID};

src/nav.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use crate::utils::icons::load_icon;
12
use cosmic::{widget::icon, Element};
23

34
use crate::{app, fl};
@@ -24,8 +25,8 @@ impl AppNavPage {
2425
}
2526
pub fn icon(self) -> cosmic::widget::Icon {
2627
match self {
27-
Self::BookmarksView => icon::from_name("web-browser-symbolic").icon(),
28-
Self::AccountsView => icon::from_name("contact-new-symbolic").icon(),
28+
Self::BookmarksView => icon::icon(load_icon("web-browser-symbolic")),
29+
Self::AccountsView => icon::icon(load_icon("contact-new-symbolic")),
2930
}
3031
}
3132

0 commit comments

Comments
 (0)