usage: Port "Clear File History?" to AdwAlertDialog
Also: - Move the dialog to the .ui file, as this dialog is UI-related - Don't destroy/force close the dialog, as it will be closed automatically after the responses are triggered
This commit is contained in:
parent
731d164277
commit
51f8742df8
2 changed files with 17 additions and 26 deletions
|
@ -33,6 +33,7 @@ struct _CcUsagePage
|
||||||
|
|
||||||
AdwSwitchRow *recently_used_row;
|
AdwSwitchRow *recently_used_row;
|
||||||
AdwComboRow *retain_history_combo;
|
AdwComboRow *retain_history_combo;
|
||||||
|
AdwDialog *clear_file_history_dialog;
|
||||||
|
|
||||||
AdwSwitchRow *purge_trash_row;
|
AdwSwitchRow *purge_trash_row;
|
||||||
AdwSwitchRow *purge_temp_row;
|
AdwSwitchRow *purge_temp_row;
|
||||||
|
@ -323,31 +324,9 @@ cc_usage_page_init (CcUsagePage *self)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_clear_recent_warning_response_cb (GtkDialog *dialog,
|
on_clear_history_response_cb (void)
|
||||||
gint response,
|
|
||||||
CcUsagePage *self)
|
|
||||||
{
|
{
|
||||||
if (response == GTK_RESPONSE_OK)
|
gtk_recent_manager_purge_items (gtk_recent_manager_get_default (), NULL);
|
||||||
gtk_recent_manager_purge_items (gtk_recent_manager_get_default (), NULL);
|
|
||||||
|
|
||||||
gtk_window_destroy (GTK_WINDOW (dialog));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
clear_recent (CcUsagePage *self)
|
|
||||||
{
|
|
||||||
GtkDialog *dialog;
|
|
||||||
|
|
||||||
dialog = run_warning (self,
|
|
||||||
_("Clear File History?"),
|
|
||||||
_("After clearing, lists of recently used files will appear empty."),
|
|
||||||
_("Clear _History"));
|
|
||||||
|
|
||||||
g_signal_connect_object (dialog,
|
|
||||||
"response",
|
|
||||||
G_CALLBACK (on_clear_recent_warning_response_cb),
|
|
||||||
self,
|
|
||||||
0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -361,6 +340,7 @@ cc_usage_page_class_init (CcUsagePageClass *klass)
|
||||||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/privacy/usage/cc-usage-page.ui");
|
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/privacy/usage/cc-usage-page.ui");
|
||||||
|
|
||||||
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, purge_after_combo);
|
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, purge_after_combo);
|
||||||
|
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, clear_file_history_dialog);
|
||||||
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, purge_temp_row);
|
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, purge_temp_row);
|
||||||
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, purge_trash_button);
|
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, purge_trash_button);
|
||||||
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, purge_trash_row);
|
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, purge_trash_row);
|
||||||
|
@ -368,7 +348,7 @@ cc_usage_page_class_init (CcUsagePageClass *klass)
|
||||||
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, recently_used_row);
|
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, recently_used_row);
|
||||||
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, retain_history_combo);
|
gtk_widget_class_bind_template_child (widget_class, CcUsagePage, retain_history_combo);
|
||||||
|
|
||||||
gtk_widget_class_bind_template_callback (widget_class, clear_recent);
|
gtk_widget_class_bind_template_callback (widget_class, on_clear_history_response_cb);
|
||||||
gtk_widget_class_bind_template_callback (widget_class, retain_history_name_cb);
|
gtk_widget_class_bind_template_callback (widget_class, retain_history_name_cb);
|
||||||
gtk_widget_class_bind_template_callback (widget_class, retain_history_combo_changed_cb);
|
gtk_widget_class_bind_template_callback (widget_class, retain_history_combo_changed_cb);
|
||||||
gtk_widget_class_bind_template_callback (widget_class, purge_after_name_cb);
|
gtk_widget_class_bind_template_callback (widget_class, purge_after_name_cb);
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
<property name="label" translatable="yes">_Clear History…</property>
|
<property name="label" translatable="yes">_Clear History…</property>
|
||||||
<property name="can-shrink">True</property>
|
<property name="can-shrink">True</property>
|
||||||
<property name="use_underline">1</property>
|
<property name="use_underline">1</property>
|
||||||
<signal name="clicked" handler="clear_recent" swapped="yes"/>
|
<signal name="clicked" handler="adw_dialog_present" object="clear_file_history_dialog"/>
|
||||||
<style>
|
<style>
|
||||||
<class name="destructive-action"/>
|
<class name="destructive-action"/>
|
||||||
</style>
|
</style>
|
||||||
|
@ -129,4 +129,15 @@
|
||||||
</object>
|
</object>
|
||||||
</property>
|
</property>
|
||||||
</template>
|
</template>
|
||||||
|
<object class="AdwAlertDialog" id="clear_file_history_dialog">
|
||||||
|
<property name="heading" translatable="yes">Clear File History?</property>
|
||||||
|
<property name="body" translatable="yes">After clearing, lists of recently used files will appear empty.</property>
|
||||||
|
<property name="default-response">cancel</property>
|
||||||
|
<property name="close-response">cancel</property>
|
||||||
|
<signal name="response::clear-history" handler="on_clear_history_response_cb"/>
|
||||||
|
<responses>
|
||||||
|
<response id="cancel" translatable="yes">_Cancel</response>
|
||||||
|
<response id="clear-history" translatable="yes" appearance="destructive">Clear _History</response>
|
||||||
|
</responses>
|
||||||
|
</object>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
Loading…
Add table
Reference in a new issue