diff --git a/README.md b/README.md index 37174fa..8f34853 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ While cosmicding was desgined for COSMICâ„¢ Desktop Environment, it should be ab Features: - Support multiple linkding instances (or multiple users on the same instance). -- Cache/aggregate bookmarks locally. +- Aggregate bookmarks locally. - Add/Edit/Remove bookmarks. - Search bookmarks based on title, URL, tags, desscription, and notes. diff --git a/i18n/en/cosmicding.ftl b/i18n/en/cosmicding.ftl index dd28111..07f3fbc 100644 --- a/i18n/en/cosmicding.ftl +++ b/i18n/en/cosmicding.ftl @@ -45,7 +45,7 @@ provided-url-is-not-valid = Provided URL is not valid quit = Quit refresh = Refresh refresh-bookmarks = Refresh Bookmarks -refreshed-all-bookmarks = Refreshed all bookmarks +refreshed-bookmarks = Refreshed bookmarks refreshed-bookmarks-for-account = Refreshed account {$acc} remove = Remove remove-account-confirm = Are you sure you wish to delete this account? diff --git a/res/screenshots/accounts.png b/res/screenshots/accounts.png index 0df0ada..a5b9ef5 100644 Binary files a/res/screenshots/accounts.png and b/res/screenshots/accounts.png differ diff --git a/res/screenshots/bookmarks.png b/res/screenshots/bookmarks.png index bb4b107..8d3b1f4 100644 Binary files a/res/screenshots/bookmarks.png and b/res/screenshots/bookmarks.png differ diff --git a/src/app.rs b/src/app.rs index 52ee6bc..b6f6317 100644 --- a/src/app.rs +++ b/src/app.rs @@ -532,7 +532,7 @@ impl Application for Cosmicding { )); commands.push( self.toasts - .push(widget::toaster::Toast::new(fl!("refreshed-all-bookmarks"))) + .push(widget::toaster::Toast::new(fl!("refreshed-bookmarks"))) .map(cosmic::app::Message::App), ); } diff --git a/src/pages/accounts.rs b/src/pages/accounts.rs index d9326cc..ca4f0fe 100644 --- a/src/pages/accounts.rs +++ b/src/pages/accounts.rs @@ -69,7 +69,7 @@ impl PageAccountsView { let mut columns = Vec::new(); columns.push( widget::row::with_capacity(2) - .spacing(spacing.space_xxs) + .spacing(spacing.space_xs) .push(widget::icon::from_name("user-available-symbolic")) .push(widget::text(item.display_name.clone())) .padding([ @@ -84,7 +84,7 @@ impl PageAccountsView { // Mandatory second row - sync status columns.push( widget::row::with_capacity(2) - .spacing(spacing.space_xxs) + .spacing(spacing.space_xs) .padding([ spacing.space_xxxs, spacing.space_xxs, @@ -101,12 +101,13 @@ impl PageAccountsView { fl!("failed") } ))) + .align_y(Alignment::Center) .into(), ); // Mandatory third row - sync timestamp columns.push( widget::row::with_capacity(2) - .spacing(spacing.space_xxs) + .spacing(spacing.space_xs) .padding([ spacing.space_xxxs, spacing.space_xxs, @@ -119,12 +120,13 @@ impl PageAccountsView { fl!("last-sync-time"), local_time.to_rfc2822() ))) + .align_y(Alignment::Center) .into(), ); // Mandatory fourth row - details columns.push( widget::row::with_capacity(2) - .spacing(spacing.space_xxs) + .spacing(spacing.space_xs) .padding([ spacing.space_xxxs, spacing.space_xxs, @@ -149,25 +151,31 @@ impl PageAccountsView { widget::text::body(fl!("disabled-public-sharing")).into() }, ]))) + .align_y(Alignment::Center) .into(), ); // Mandatory fifth row - actions let actions_row = widget::row::with_capacity(3) - .spacing(spacing.space_xxs) - .push(widget::button::link(fl!("refresh")).on_press( + .spacing(spacing.space_xs) + .push(widget::button::link(fl!("refresh")).font_size(12).on_press( AppAccountsMessage::RefreshBookmarksForAccount(item.to_owned()), )) .push( widget::button::link(fl!("edit")) + .font_size(12) .on_press(AppAccountsMessage::EditAccount(item.to_owned())), ) .push( widget::button::link(fl!("remove")) + .font_size(12) .on_press(AppAccountsMessage::DeleteAccount(item.to_owned())), ) .push( widget::button::link(fl!("open-instance")) + .spacing(spacing.space_xxxs) .trailing_icon(true) + .icon_size(10) + .font_size(12) .on_press(AppAccountsMessage::OpenExternalURL(item.instance.clone())) .tooltip(item.instance.clone()), ); diff --git a/src/pages/bookmarks.rs b/src/pages/bookmarks.rs index 73fbe75..f4b02cb 100644 --- a/src/pages/bookmarks.rs +++ b/src/pages/bookmarks.rs @@ -75,34 +75,44 @@ impl PageBookmarksView { let mut columns = Vec::new(); // Mandatory first row - title columns.push( - widget::row::with_capacity(1) + widget::row::with_capacity(2) .spacing(spacing.space_xxs) .padding([ - spacing.space_xxxs, spacing.space_xxs, - spacing.space_xxxs, + spacing.space_xxs, spacing.space_none, + spacing.space_xxxs, ]) + .push(widget::icon::from_name("web-browser-symbolic")) .push( widget::button::link(item.title.clone()) + .spacing(spacing.space_xxxs) .trailing_icon(true) + .icon_size(11) .tooltip(item.url.clone()) .on_press(AppBookmarksMessage::OpenExternalURL(item.url.clone())), ) + .align_y(Alignment::Center) .into(), ); // Optional second row - description if !item.description.is_empty() { columns.push( - widget::row::with_capacity(1) - .spacing(spacing.space_xxs) + widget::row::with_capacity(2) + .spacing(spacing.space_xs) .padding([ spacing.space_xxxs, spacing.space_xxs, - spacing.space_xxs, + if item.tag_names.is_empty() { + spacing.space_xxxs + } else { + spacing.space_none + }, spacing.space_xxxs, ]) + .push(widget::icon::from_name("emblem-documents-symbolic")) .push(widget::text(item.description.clone())) + .align_y(Alignment::Start) .into(), ); } @@ -110,13 +120,18 @@ impl PageBookmarksView { if !item.tag_names.is_empty() { columns.push( widget::row::with_capacity(2) - .spacing(spacing.space_none) + .spacing(spacing.space_xs) .padding([ - spacing.space_none, + if item.description.is_empty() { + spacing.space_xxxs + } else { + spacing.space_xxs + }, spacing.space_xxs, spacing.space_xxxs, spacing.space_xxxs, ]) + .push(widget::icon::from_name("mail-mark-important-symbolic")) .push( widget::text::body( item.tag_names @@ -127,19 +142,20 @@ impl PageBookmarksView { ) .size(12), ) + .align_y(Alignment::Center) .into(), ); } // Mandatory fourth row - actions let mut actions_row = widget::row::with_capacity(1) .spacing(spacing.space_xxs) - .push(widget::button::link(fl!("edit")).on_press( + .push(widget::button::link(fl!("edit")).font_size(12).on_press( AppBookmarksMessage::EditBookmark( derived_account.to_owned(), item.to_owned(), ), )) - .push(widget::button::link(fl!("remove")).on_press( + .push(widget::button::link(fl!("remove")).font_size(12).on_press( AppBookmarksMessage::DeleteBookmark( derived_account.to_owned(), item.to_owned(), @@ -148,6 +164,7 @@ impl PageBookmarksView { if !item.notes.is_empty() { actions_row = actions_row.push( widget::button::link(fl!("notes")) + .font_size(12) .on_press(AppBookmarksMessage::ViewNotes(item.clone())), ); } @@ -156,7 +173,7 @@ impl PageBookmarksView { .padding([ spacing.space_none, spacing.space_xxs, - spacing.space_xxxs, + spacing.space_none, spacing.space_none, ]) .into(), @@ -208,7 +225,7 @@ impl PageBookmarksView { .height(Length::Fill); widget::container( - widget::column::with_children(vec![widget::row::with_capacity(3) + widget::column::with_children(vec![widget::row::with_capacity(2) .align_y(Alignment::Center) .push(widget::text::title3(fl!( "bookmarks-with-count",