Skip to content

Commit

Permalink
Merge pull request #144 from mjakeman/minor-fixes-0.3
Browse files Browse the repository at this point in the history
Further fixes for 0.3
  • Loading branch information
mjakeman authored Mar 22, 2022
2 parents 9ce99ad + 710a755 commit 34232b9
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 20 deletions.
1 change: 0 additions & 1 deletion NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ Second feature update to extension-manager
- In-app release notes on first run
- Allow installing unsupported extensions
- Option to sort extensions by enabled status
- Add placeholder labels when no extensions are installed
- Focus search entry on first open

### Maintenance
Expand Down
2 changes: 2 additions & 0 deletions src/exm-application.c
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,8 @@ exm_application_init (ExmApplication *self)
map_setting_to_adw_style,
NULL, NULL, NULL);

g_object_unref (settings);

const char *accels[] = {"<primary>q", NULL};
gtk_application_set_accels_for_action (GTK_APPLICATION (self), "app.quit", accels);
}
44 changes: 27 additions & 17 deletions src/exm-installed-page.c
Original file line number Diff line number Diff line change
Expand Up @@ -131,8 +131,9 @@ widget_factory (ExmExtension* extension)
{
ExmExtensionRow *row;

row = exm_extension_row_new (extension);
g_return_if_fail (EXM_IS_EXTENSION (extension));

row = exm_extension_row_new (extension);
return GTK_WIDGET (row);
}

Expand Down Expand Up @@ -168,6 +169,9 @@ bind_list_box (GtkListBox *list_box,
GtkStringSorter *alphabetical_sorter;
GtkSortListModel *sorted_model;

g_return_if_fail (GTK_IS_LIST_BOX (list_box));
g_return_if_fail (G_IS_LIST_MODEL (model));

// Sort alphabetically
expression = gtk_property_expression_new (EXM_TYPE_EXTENSION, NULL, "display-name");
alphabetical_sorter = gtk_string_sorter_new (expression);
Expand Down Expand Up @@ -237,23 +241,15 @@ invalidate_model_bindings (ExmInstalledPage *self)
"system-extensions", &system_ext_model,
NULL);

if (!user_ext_model || !system_ext_model)
return;

bind_list_box (self->user_list_box, user_ext_model, self->sort_enabled_first);
bind_list_box (self->system_list_box, system_ext_model, self->sort_enabled_first);
if (user_ext_model)
bind_list_box (self->user_list_box,
user_ext_model,
self->sort_enabled_first);

g_object_bind_property (self->manager,
"extensions-enabled",
self->user_list_box,
"sensitive",
G_BINDING_SYNC_CREATE);

g_object_bind_property (self->manager,
"extensions-enabled",
self->system_list_box,
"sensitive",
G_BINDING_SYNC_CREATE);
if (system_ext_model)
bind_list_box (self->system_list_box,
system_ext_model,
self->sort_enabled_first);
}

static void
Expand All @@ -267,6 +263,18 @@ on_bind_manager (ExmInstalledPage *self)
G_CALLBACK (on_updates_available),
self);

g_object_bind_property (self->manager,
"extensions-enabled",
self->user_list_box,
"sensitive",
G_BINDING_SYNC_CREATE);

g_object_bind_property (self->manager,
"extensions-enabled",
self->system_list_box,
"sensitive",
G_BINDING_SYNC_CREATE);

// Check if updates are available
// NOTE: We need to do this *after* connecting the signal
// handler above, otherwise we will not be notified.
Expand Down Expand Up @@ -326,4 +334,6 @@ exm_installed_page_init (ExmInstalledPage *self)
g_settings_bind (settings, "sort-enabled-first",
self, "sort-enabled-first",
G_SETTINGS_BIND_GET);

g_object_unref (settings);
}
1 change: 1 addition & 0 deletions src/exm-window.c
Original file line number Diff line number Diff line change
Expand Up @@ -375,6 +375,7 @@ do_version_check (ExmWindow *self)
gtk_dialog_add_button (GTK_DIALOG (dialog), _("View Release Notes"), GTK_RESPONSE_YES);
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_YES);

// Translators: '%s' = Current version of Extension Manager (e.g. '0.3.0')
gtk_message_dialog_format_secondary_markup (GTK_MESSAGE_DIALOG (dialog),
_("This is your first time using <b>Extension Manager %s</b>.\nWould you like to see the release notes?"),
APP_VERSION);
Expand Down
6 changes: 4 additions & 2 deletions src/local/exm-extension.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,9 @@ exm_extension_get_property (GObject *object,
break;
case PROP_DISPLAY_NAME:
g_value_set_string (value, self->display_name);
self->display_name = g_markup_escape_text (self->display_name, -1);
break;
case PROP_DESCRIPTION:
g_value_set_string (value, self->description);
self->description = g_markup_escape_text (self->description, -1);
break;
case PROP_STATE:
g_value_set_enum (value, self->state);
Expand Down Expand Up @@ -114,9 +112,13 @@ exm_extension_set_property (GObject *object,
self->uuid = g_value_dup_string (value);
break;
case PROP_DISPLAY_NAME:
if (self->display_name)
g_free (self->display_name);
self->display_name = g_value_dup_string (value);
break;
case PROP_DESCRIPTION:
if (self->description)
g_free (self->description);
self->description = g_value_dup_string (value);
break;
case PROP_STATE:
Expand Down

0 comments on commit 34232b9

Please sign in to comment.