diff --git a/core/Enum.vala b/core/Enum.vala
index 9b05a2a6e..aa7a2b4aa 100644
--- a/core/Enum.vala
+++ b/core/Enum.vala
@@ -175,25 +175,25 @@ public enum FilterType {
}
}
- public string get_color () {
+ public string get_color (bool dark = false) {
switch (this) {
case INBOX:
- return "#3584e4";
+ return dark ? "#99c1f1" : "#3584e4";
case TODAY:
return "#33d17a";
case SCHEDULED:
- return "#9141ac";
+ return dark ? "#dc8add" : "#9141ac";
case PINBOARD:
- return "#ed333b";
+ return dark ? "#f66151" : "#ed333b";
case LABELS:
- return "#986a44";
+ return dark ? "#cdab8f" : "#986a44";
case COMPLETED:
- return "#ff7800";
+ return dark ? "#ffbe6f" : "#ff7800";
default:
assert_not_reached ();
diff --git a/core/Widgets/Calendar/CalendarHeader.vala b/core/Widgets/Calendar/CalendarHeader.vala
index 4db9a300c..a5ff444fb 100644
--- a/core/Widgets/Calendar/CalendarHeader.vala
+++ b/core/Widgets/Calendar/CalendarHeader.vala
@@ -55,12 +55,14 @@ public class Widgets.Calendar.CalendarHeader : Gtk.Box {
left_button = new Gtk.Button.from_icon_name ("pan-start-symbolic") {
valign = Gtk.Align.CENTER,
- css_classes = { "flat" }
+ css_classes = { "flat" },
+ tooltip_text = _("Back")
};
right_button = new Gtk.Button.from_icon_name ("pan-end-symbolic") {
valign = Gtk.Align.CENTER,
- css_classes = { "flat" }
+ css_classes = { "flat" },
+ tooltip_text = _("Forward")
};
var date_grid = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6);
@@ -69,7 +71,8 @@ public class Widgets.Calendar.CalendarHeader : Gtk.Box {
center_button = new Gtk.Button () {
valign = Gtk.Align.CENTER,
- hexpand = true
+ hexpand = true,
+ tooltip_text = _("Today")
};
center_button.add_css_class ("flat");
diff --git a/core/Widgets/Calendar/CalendarView.vala b/core/Widgets/Calendar/CalendarView.vala
index bfcf58f15..abf8bbf61 100644
--- a/core/Widgets/Calendar/CalendarView.vala
+++ b/core/Widgets/Calendar/CalendarView.vala
@@ -98,19 +98,22 @@ public class Widgets.Calendar.CalendarView : Adw.Bin {
if (i < start_day || i >= max_day + start_day) {
item.visible = false;
} else {
- if (block_past_days && generate_date (day, day_number).compare (current_date) <= -1) {
+ var day_datetime = generate_date (day, day_number);
+
+ if (block_past_days && day_datetime.compare (current_date) <= -1) {
item.sensitive = false;
}
- if (generate_date (day, day_number).compare (current_date) == 0) {
+ if (day_datetime.compare (current_date) == 0) {
item.child.add_css_class ("today");
}
- if (show_day && Utils.Datetime.get_date_only (day).compare (generate_date (day, day_number)) == 0) {
+ if (show_day && Utils.Datetime.get_date_only (day).compare (day_datetime) == 0) {
item.child.add_css_class ("selected");
}
item.day = day_number;
+ item.tooltip_text = Utils.Datetime.get_relative_date_from_date (day_datetime);
day_number = day_number + 1;
}
}
diff --git a/data/io.github.alainm23.planify.appdata.xml.in.in b/data/io.github.alainm23.planify.appdata.xml.in.in
index fcccee6bc..b787cb460 100644
--- a/data/io.github.alainm23.planify.appdata.xml.in.in
+++ b/data/io.github.alainm23.planify.appdata.xml.in.in
@@ -61,7 +61,7 @@
https://www.patreon.com/alainm23
@appid@.desktop
-
+
- Added feature to verify database integrity
diff --git a/data/resources/stylesheet/stylesheet.css b/data/resources/stylesheet/stylesheet.css
index a33bcba00..f7164e553 100644
--- a/data/resources/stylesheet/stylesheet.css
+++ b/data/resources/stylesheet/stylesheet.css
@@ -146,10 +146,6 @@ entry.flat:focus-within {
animation: add-animation 0.7s ease-in-out;
}
-.magic-button:focus {
- outline: none;
-}
-
.header-title {
font-weight: bold;
letter-spacing: -0.05em;
diff --git a/meson.build b/meson.build
index 1173fd22b..719deb4c8 100644
--- a/meson.build
+++ b/meson.build
@@ -1,7 +1,7 @@
project(
'io.github.alainm23.planify',
'vala', 'c',
- version: '4.11.6'
+ version: '4.11.7'
)
gnome = import('gnome')
diff --git a/src/Dialogs/Preferences/PreferencesWindow.vala b/src/Dialogs/Preferences/PreferencesWindow.vala
index f903f957e..9f999a175 100644
--- a/src/Dialogs/Preferences/PreferencesWindow.vala
+++ b/src/Dialogs/Preferences/PreferencesWindow.vala
@@ -1205,7 +1205,6 @@ public class Dialogs.Preferences.PreferencesWindow : Adw.PreferencesDialog {
};
// Loading
-
var sync_label = new Gtk.Label (_("Planify is is syncing your tasks, this may take a few minutes")) {
css_classes = { "dim-label" }
};
@@ -1250,14 +1249,16 @@ public class Dialogs.Preferences.PreferencesWindow : Adw.PreferencesDialog {
});
webview.load_changed.connect ((load_event) => {
- var redirect_uri = webview.get_uri ();
-
- if (("https://github.com/alainm23/planner?code=" in redirect_uri) &&
- ("&state=%s".printf (state) in redirect_uri)) {
+ var uri = webview.get_uri ();
+ var redirect_uri = "https://github.com/alainm23/planner";
+ print ("url: %s\n".printf (uri));
+
+ if ((redirect_uri + "?code=" in uri) &&
+ ("&state=%s".printf (state) in uri)) {
settings_header.title = _("Synchronizing…"); // vala-lint=ellipsis
stack.visible_child_name = "loading";
- Services.Todoist.get_default ().login.begin (redirect_uri, (obj, res) => {
+ Services.Todoist.get_default ().login.begin (uri, (obj, res) => {
HttpResponse response = Services.Todoist.get_default ().login.end (res);
pop_subpage ();
webview.get_network_session ().get_website_data_manager ().clear.begin (WebKit.WebsiteDataTypes.ALL, 0, null);
@@ -1274,7 +1275,7 @@ public class Dialogs.Preferences.PreferencesWindow : Adw.PreferencesDialog {
});
}
- if ("https://github.com/alainm23/planner?error=access_denied" in redirect_uri) {
+ if (redirect_uri + "?error=access_denied" in uri) {
debug ("access_denied");
webview.get_network_session ().get_website_data_manager ().clear.begin (WebKit.WebsiteDataTypes.ALL, 0, null);
pop_subpage ();
diff --git a/src/Layouts/FilterPaneRow.vala b/src/Layouts/FilterPaneRow.vala
index 1037a3674..6e91aea32 100644
--- a/src/Layouts/FilterPaneRow.vala
+++ b/src/Layouts/FilterPaneRow.vala
@@ -97,9 +97,19 @@ public class Layouts.FilterPaneRow : Gtk.FlowBoxChild {
main_grid.attach (title_box, 0, 1, 2, 2);
child = main_grid;
- Util.get_default ().set_widget_color (filter_type.get_color (), this);
Services.Settings.get_default ().settings.bind ("show-tasks-count", count_revealer, "reveal_child", GLib.SettingsBindFlags.DEFAULT);
+ var granite_settings = Granite.Settings.get_default ();
+ Util.get_default ().set_widget_color (filter_type.get_color (Services.Settings.get_default ().settings.get_boolean ("dark-mode")), this);
+ Services.EventBus.get_default ().theme_changed.connect (() => {
+ print ("dark: %s\n".printf (
+ (Services.Settings.get_default ().settings.get_boolean ("dark-mode")).to_string ()
+ ));
+ Util.get_default ().set_widget_color (filter_type.get_color (
+ Services.Settings.get_default ().settings.get_boolean ("dark-mode")
+ ), this);
+ });
+
var select_gesture = new Gtk.GestureClick ();
add_controller (select_gesture);
select_gesture.pressed.connect (() => {
diff --git a/src/Widgets/MagicButton.vala b/src/Widgets/MagicButton.vala
index 64b59680d..56a4eda71 100644
--- a/src/Widgets/MagicButton.vala
+++ b/src/Widgets/MagicButton.vala
@@ -43,7 +43,8 @@ public class Widgets.MagicButton : Adw.Bin {
height_request = 48,
width_request = 48,
css_classes = { "suggested-action", "magic-button" },
- tooltip_markup = Util.get_default ().markup_accel_tooltip (_("Add Task"), "A")
+ tooltip_markup = Util.get_default ().markup_accel_tooltip (_("Add Task"), "A"),
+ focusable = false
};
main_revealer = new Gtk.Revealer () {