Change PpPPDSelectionDialog to GtkDialog
The dialog is now displayed by calling gtk_dialog_run and gtk_window_set_transient_for in the window displaying the dialog. Cleanup is handled using gtk_widget_destroy. Destructors in the windows using the dialog no longer cleanup the dialog as it is assumed it will be either cleaned up after the response callback, or handled by the destroy_with_parent property set on the dialog itself.
This commit is contained in:
parent
c86d1c09c8
commit
c239521e9d
5 changed files with 97 additions and 124 deletions
|
@ -174,7 +174,7 @@ ppd_selection_dialog_response_cb (GtkDialog *dialog,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
g_clear_object (&self->pp_ppd_selection_dialog);
|
gtk_widget_destroy (GTK_WIDGET (self->pp_ppd_selection_dialog));
|
||||||
self->pp_ppd_selection_dialog = NULL;
|
self->pp_ppd_selection_dialog = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -231,11 +231,15 @@ select_ppd_in_dialog (PpDetailsDialog *self)
|
||||||
}
|
}
|
||||||
|
|
||||||
self->pp_ppd_selection_dialog = pp_ppd_selection_dialog_new (
|
self->pp_ppd_selection_dialog = pp_ppd_selection_dialog_new (
|
||||||
GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self))),
|
|
||||||
self->all_ppds_list,
|
self->all_ppds_list,
|
||||||
manufacturer,
|
manufacturer,
|
||||||
ppd_selection_dialog_response_cb,
|
ppd_selection_dialog_response_cb,
|
||||||
self);
|
self);
|
||||||
|
|
||||||
|
gtk_window_set_transient_for (GTK_WINDOW (self->pp_ppd_selection_dialog),
|
||||||
|
GTK_WINDOW (self));
|
||||||
|
|
||||||
|
gtk_dialog_run (GTK_DIALOG (self->pp_ppd_selection_dialog));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -539,7 +539,6 @@ pp_new_printer_dialog_finalize (GObject *object)
|
||||||
g_clear_pointer (&self->list, ppd_list_free);
|
g_clear_pointer (&self->list, ppd_list_free);
|
||||||
g_clear_object (&self->builder);
|
g_clear_object (&self->builder);
|
||||||
g_clear_pointer (&self->local_cups_devices, g_ptr_array_unref);
|
g_clear_pointer (&self->local_cups_devices, g_ptr_array_unref);
|
||||||
g_clear_object (&self->ppd_selection_dialog);
|
|
||||||
g_clear_object (&self->new_device);
|
g_clear_object (&self->new_device);
|
||||||
g_clear_object (&self->local_printer_icon);
|
g_clear_object (&self->local_printer_icon);
|
||||||
g_clear_object (&self->remote_printer_icon);
|
g_clear_object (&self->remote_printer_icon);
|
||||||
|
@ -1902,14 +1901,13 @@ ppd_selection_cb (GtkDialog *_dialog,
|
||||||
guint window_id = 0;
|
guint window_id = 0;
|
||||||
gint acquisition_method;
|
gint acquisition_method;
|
||||||
|
|
||||||
if (response_id != GTK_RESPONSE_OK) {
|
if (response_id == GTK_RESPONSE_OK) {
|
||||||
emit_response (self, GTK_RESPONSE_CANCEL);
|
ppd_name = pp_ppd_selection_dialog_get_ppd_name (self->ppd_selection_dialog);
|
||||||
return;
|
ppd_display_name = pp_ppd_selection_dialog_get_ppd_display_name (self->ppd_selection_dialog);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
emit_response (self, GTK_RESPONSE_CANCEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ppd_name = pp_ppd_selection_dialog_get_ppd_name (self->ppd_selection_dialog);
|
|
||||||
ppd_display_name = pp_ppd_selection_dialog_get_ppd_display_name (self->ppd_selection_dialog);
|
|
||||||
g_clear_object (&self->ppd_selection_dialog);
|
|
||||||
|
|
||||||
if (ppd_name)
|
if (ppd_name)
|
||||||
{
|
{
|
||||||
|
@ -1980,6 +1978,8 @@ ppd_selection_cb (GtkDialog *_dialog,
|
||||||
|
|
||||||
g_clear_object (&self->new_device);
|
g_clear_object (&self->new_device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gtk_widget_destroy (GTK_WIDGET (self->ppd_selection_dialog));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2018,11 +2018,15 @@ new_printer_dialog_response_cb (PpNewPrinterDialog *self,
|
||||||
{
|
{
|
||||||
self->new_device = pp_print_device_copy (device);
|
self->new_device = pp_print_device_copy (device);
|
||||||
self->ppd_selection_dialog =
|
self->ppd_selection_dialog =
|
||||||
pp_ppd_selection_dialog_new (self->parent,
|
pp_ppd_selection_dialog_new (self->list,
|
||||||
self->list,
|
|
||||||
NULL,
|
NULL,
|
||||||
ppd_selection_cb,
|
ppd_selection_cb,
|
||||||
self);
|
self);
|
||||||
|
|
||||||
|
gtk_window_set_transient_for (GTK_WINDOW (self->ppd_selection_dialog),
|
||||||
|
GTK_WINDOW (self->parent));
|
||||||
|
|
||||||
|
gtk_dialog_run (GTK_DIALOG (self->ppd_selection_dialog));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -49,10 +49,13 @@ enum
|
||||||
|
|
||||||
|
|
||||||
struct _PpPPDSelectionDialog {
|
struct _PpPPDSelectionDialog {
|
||||||
GObject parent_instance;
|
GtkDialog parent_instance;
|
||||||
|
|
||||||
GtkBuilder *builder;
|
GtkButton *ppd_selection_select_button;
|
||||||
GtkWidget *dialog;
|
GtkSpinner *ppd_spinner;
|
||||||
|
GtkLabel *progress_label;
|
||||||
|
GtkTreeView *ppd_selection_manufacturers_treeview;
|
||||||
|
GtkTreeView *ppd_selection_models_treeview;
|
||||||
|
|
||||||
UserResponseCallback user_callback;
|
UserResponseCallback user_callback;
|
||||||
gpointer user_data;
|
gpointer user_data;
|
||||||
|
@ -64,7 +67,7 @@ struct _PpPPDSelectionDialog {
|
||||||
PPDList *list;
|
PPDList *list;
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE (PpPPDSelectionDialog, pp_ppd_selection_dialog, G_TYPE_OBJECT)
|
G_DEFINE_TYPE (PpPPDSelectionDialog, pp_ppd_selection_dialog, GTK_TYPE_DIALOG)
|
||||||
|
|
||||||
static void
|
static void
|
||||||
manufacturer_selection_changed_cb (PpPPDSelectionDialog *self)
|
manufacturer_selection_changed_cb (PpPPDSelectionDialog *self)
|
||||||
|
@ -77,12 +80,12 @@ manufacturer_selection_changed_cb (PpPPDSelectionDialog *self)
|
||||||
gchar *manufacturer_name = NULL;
|
gchar *manufacturer_name = NULL;
|
||||||
gint i, index;
|
gint i, index;
|
||||||
|
|
||||||
treeview = GTK_TREE_VIEW (gtk_builder_get_object (self->builder, "ppd-selection-manufacturers-treeview"));
|
treeview = self->ppd_selection_manufacturers_treeview;
|
||||||
if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (treeview), &model, &iter))
|
if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (treeview), &model, &iter))
|
||||||
{
|
{
|
||||||
gtk_tree_model_get (model, &iter,
|
gtk_tree_model_get (model, &iter,
|
||||||
PPD_MANUFACTURERS_NAMES_COLUMN, &manufacturer_name,
|
PPD_MANUFACTURERS_NAMES_COLUMN, &manufacturer_name,
|
||||||
-1);
|
-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (manufacturer_name)
|
if (manufacturer_name)
|
||||||
|
@ -100,8 +103,7 @@ manufacturer_selection_changed_cb (PpPPDSelectionDialog *self)
|
||||||
|
|
||||||
if (index >= 0)
|
if (index >= 0)
|
||||||
{
|
{
|
||||||
models_treeview = (GtkTreeView*)
|
models_treeview = self->ppd_selection_models_treeview;
|
||||||
gtk_builder_get_object (self->builder, "ppd-selection-models-treeview");
|
|
||||||
|
|
||||||
store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
|
store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
|
||||||
|
|
||||||
|
@ -128,28 +130,27 @@ model_selection_changed_cb (PpPPDSelectionDialog *self)
|
||||||
GtkTreeView *treeview;
|
GtkTreeView *treeview;
|
||||||
GtkTreeModel *model;
|
GtkTreeModel *model;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
GtkWidget *widget;
|
GtkButton *ppd_select_button;
|
||||||
gchar *model_name = NULL;
|
gchar *model_name = NULL;
|
||||||
|
|
||||||
treeview = GTK_TREE_VIEW (gtk_builder_get_object (self->builder, "ppd-selection-models-treeview"));
|
treeview = self->ppd_selection_models_treeview;
|
||||||
if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (treeview), &model, &iter))
|
if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (treeview), &model, &iter))
|
||||||
{
|
{
|
||||||
gtk_tree_model_get (model, &iter,
|
gtk_tree_model_get (model, &iter,
|
||||||
PPD_NAMES_COLUMN, &model_name,
|
PPD_NAMES_COLUMN, &model_name,
|
||||||
-1);
|
-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
widget = (GtkWidget*)
|
ppd_select_button = self->ppd_selection_select_button;
|
||||||
gtk_builder_get_object (self->builder, "ppd-selection-select-button");
|
|
||||||
|
|
||||||
if (model_name)
|
if (model_name)
|
||||||
{
|
{
|
||||||
gtk_widget_set_sensitive (widget, TRUE);
|
gtk_widget_set_sensitive (GTK_WIDGET (ppd_select_button), TRUE);
|
||||||
g_free (model_name);
|
g_free (model_name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gtk_widget_set_sensitive (widget, FALSE);
|
gtk_widget_set_sensitive (GTK_WIDGET (ppd_select_button), FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,20 +163,14 @@ fill_ppds_list (PpPPDSelectionDialog *self)
|
||||||
GtkTreeView *treeview;
|
GtkTreeView *treeview;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
GtkTreeIter *preselect_iter = NULL;
|
GtkTreeIter *preselect_iter = NULL;
|
||||||
GtkWidget *widget;
|
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
widget = (GtkWidget*)
|
gtk_widget_hide (GTK_WIDGET (self->ppd_spinner));
|
||||||
gtk_builder_get_object (self->builder, "ppd-spinner");
|
gtk_spinner_stop (self->ppd_spinner);
|
||||||
gtk_widget_hide (widget);
|
|
||||||
gtk_spinner_stop (GTK_SPINNER (widget));
|
|
||||||
|
|
||||||
widget = (GtkWidget*)
|
gtk_widget_hide (GTK_WIDGET (self->progress_label));
|
||||||
gtk_builder_get_object (self->builder, "progress-label");
|
|
||||||
gtk_widget_hide (widget);
|
|
||||||
|
|
||||||
treeview = (GtkTreeView*)
|
treeview = self->ppd_selection_manufacturers_treeview;
|
||||||
gtk_builder_get_object (self->builder, "ppd-selection-manufacturers-treeview");
|
|
||||||
|
|
||||||
if (self->list)
|
if (self->list)
|
||||||
{
|
{
|
||||||
|
@ -217,11 +212,9 @@ populate_dialog (PpPPDSelectionDialog *self)
|
||||||
GtkCellRenderer *renderer;
|
GtkCellRenderer *renderer;
|
||||||
GtkTreeView *manufacturers_treeview;
|
GtkTreeView *manufacturers_treeview;
|
||||||
GtkTreeView *models_treeview;
|
GtkTreeView *models_treeview;
|
||||||
GtkWidget *widget;
|
|
||||||
GtkWidget *header;
|
GtkWidget *header;
|
||||||
|
|
||||||
manufacturers_treeview = (GtkTreeView*)
|
manufacturers_treeview = self->ppd_selection_manufacturers_treeview;
|
||||||
gtk_builder_get_object (self->builder, "ppd-selection-manufacturers-treeview");
|
|
||||||
|
|
||||||
renderer = gtk_cell_renderer_text_new ();
|
renderer = gtk_cell_renderer_text_new ();
|
||||||
gtk_cell_renderer_set_padding (renderer, 10, 0);
|
gtk_cell_renderer_set_padding (renderer, 10, 0);
|
||||||
|
@ -237,8 +230,7 @@ populate_dialog (PpPPDSelectionDialog *self)
|
||||||
gtk_tree_view_append_column (manufacturers_treeview, column);
|
gtk_tree_view_append_column (manufacturers_treeview, column);
|
||||||
|
|
||||||
|
|
||||||
models_treeview = (GtkTreeView*)
|
models_treeview = self->ppd_selection_models_treeview;
|
||||||
gtk_builder_get_object (self->builder, "ppd-selection-models-treeview");
|
|
||||||
|
|
||||||
renderer = gtk_cell_renderer_text_new ();
|
renderer = gtk_cell_renderer_text_new ();
|
||||||
gtk_cell_renderer_set_padding (renderer, 10, 0);
|
gtk_cell_renderer_set_padding (renderer, 10, 0);
|
||||||
|
@ -261,13 +253,12 @@ populate_dialog (PpPPDSelectionDialog *self)
|
||||||
g_signal_connect_object (gtk_tree_view_get_selection (manufacturers_treeview),
|
g_signal_connect_object (gtk_tree_view_get_selection (manufacturers_treeview),
|
||||||
"changed", G_CALLBACK (manufacturer_selection_changed_cb), self, G_CONNECT_SWAPPED);
|
"changed", G_CALLBACK (manufacturer_selection_changed_cb), self, G_CONNECT_SWAPPED);
|
||||||
|
|
||||||
gtk_widget_show (self->dialog);
|
|
||||||
|
|
||||||
if (!self->list)
|
if (!self->list)
|
||||||
{
|
{
|
||||||
widget = (GtkWidget*)
|
gtk_widget_show (GTK_WIDGET (self->ppd_spinner));
|
||||||
gtk_builder_get_object (self->builder, "ppd-spinner");
|
gtk_spinner_start (self->ppd_spinner);
|
||||||
gtk_spinner_start (GTK_SPINNER (widget));
|
|
||||||
|
gtk_widget_show (GTK_WIDGET (self->progress_label));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -284,12 +275,9 @@ ppd_selection_dialog_response_cb (PpPPDSelectionDialog *self,
|
||||||
GtkTreeView *models_treeview;
|
GtkTreeView *models_treeview;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
|
|
||||||
gtk_widget_hide (GTK_WIDGET (self->dialog));
|
|
||||||
|
|
||||||
if (response_id == GTK_RESPONSE_OK)
|
if (response_id == GTK_RESPONSE_OK)
|
||||||
{
|
{
|
||||||
models_treeview = (GtkTreeView*)
|
models_treeview = self->ppd_selection_models_treeview;
|
||||||
gtk_builder_get_object (self->builder, "ppd-selection-models-treeview");
|
|
||||||
|
|
||||||
if (models_treeview)
|
if (models_treeview)
|
||||||
{
|
{
|
||||||
|
@ -302,52 +290,24 @@ ppd_selection_dialog_response_cb (PpPPDSelectionDialog *self,
|
||||||
gtk_tree_model_get (model, &iter,
|
gtk_tree_model_get (model, &iter,
|
||||||
PPD_NAMES_COLUMN, &self->ppd_name,
|
PPD_NAMES_COLUMN, &self->ppd_name,
|
||||||
PPD_DISPLAY_NAMES_COLUMN, &self->ppd_display_name,
|
PPD_DISPLAY_NAMES_COLUMN, &self->ppd_display_name,
|
||||||
-1);
|
-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self->user_callback (GTK_DIALOG (self->dialog), response_id, self->user_data);
|
self->user_callback (GTK_DIALOG (self), response_id, self->user_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
pp_ppd_selection_dialog_finalize (GObject *object)
|
|
||||||
{
|
|
||||||
PpPPDSelectionDialog *self = PP_PPD_SELECTION_DIALOG (object);
|
|
||||||
|
|
||||||
g_clear_object (&self->builder);
|
|
||||||
g_clear_pointer (&self->dialog, gtk_widget_destroy);
|
|
||||||
|
|
||||||
g_clear_pointer (&self->ppd_name, g_free);
|
|
||||||
g_clear_pointer (&self->ppd_name, g_free);
|
|
||||||
g_clear_pointer (&self->ppd_display_name, g_free);
|
|
||||||
|
|
||||||
G_OBJECT_CLASS (pp_ppd_selection_dialog_parent_class)->finalize (object);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
pp_ppd_selection_dialog_class_init (PpPPDSelectionDialogClass *klass)
|
|
||||||
{
|
|
||||||
GObjectClass *object_class;
|
|
||||||
|
|
||||||
object_class = G_OBJECT_CLASS (klass);
|
|
||||||
object_class->finalize = pp_ppd_selection_dialog_finalize;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
PpPPDSelectionDialog *
|
PpPPDSelectionDialog *
|
||||||
pp_ppd_selection_dialog_new (GtkWindow *parent,
|
pp_ppd_selection_dialog_new (PPDList *ppd_list,
|
||||||
PPDList *ppd_list,
|
|
||||||
const gchar *manufacturer,
|
const gchar *manufacturer,
|
||||||
UserResponseCallback user_callback,
|
UserResponseCallback user_callback,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
PpPPDSelectionDialog *self;
|
PpPPDSelectionDialog *self;
|
||||||
GtkWidget *widget;
|
|
||||||
g_autoptr(GError) error = NULL;
|
|
||||||
|
|
||||||
self = g_object_new (PP_TYPE_PPD_SELECTION_DIALOG, NULL);
|
self = g_object_new (pp_ppd_selection_dialog_get_type (), NULL);
|
||||||
|
|
||||||
self->user_callback = user_callback;
|
self->user_callback = user_callback;
|
||||||
self->user_data = user_data;
|
self->user_data = user_data;
|
||||||
|
@ -356,42 +316,48 @@ pp_ppd_selection_dialog_new (GtkWindow *parent,
|
||||||
|
|
||||||
self->manufacturer = get_standard_manufacturers_name (manufacturer);
|
self->manufacturer = get_standard_manufacturers_name (manufacturer);
|
||||||
|
|
||||||
gtk_window_set_transient_for (GTK_WINDOW (self->dialog), GTK_WINDOW (parent));
|
/* connect signal */
|
||||||
|
g_signal_connect_object (self, "response", G_CALLBACK (ppd_selection_dialog_response_cb), self, G_CONNECT_SWAPPED);
|
||||||
|
|
||||||
widget = (GtkWidget*)
|
gtk_spinner_start (self->ppd_spinner);
|
||||||
gtk_builder_get_object (self->builder, "ppd-spinner");
|
|
||||||
gtk_spinner_start (GTK_SPINNER (widget));
|
|
||||||
|
|
||||||
populate_dialog (self);
|
populate_dialog (self);
|
||||||
|
|
||||||
gtk_window_present (GTK_WINDOW (self->dialog));
|
return self;
|
||||||
|
|
||||||
return PP_PPD_SELECTION_DIALOG (self);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
pp_ppd_selection_dialog_dispose (GObject *object)
|
||||||
|
{
|
||||||
|
PpPPDSelectionDialog *self = PP_PPD_SELECTION_DIALOG (object);
|
||||||
|
|
||||||
|
g_clear_pointer (&self->ppd_name, g_free);
|
||||||
|
g_clear_pointer (&self->ppd_display_name, g_free);
|
||||||
|
g_clear_pointer (&self->manufacturer, g_free);
|
||||||
|
|
||||||
|
G_OBJECT_CLASS (pp_ppd_selection_dialog_parent_class)->dispose (object);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
pp_ppd_selection_dialog_class_init (PpPPDSelectionDialogClass *klass)
|
||||||
|
{
|
||||||
|
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||||
|
|
||||||
|
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/printers/ppd-selection-dialog.ui");
|
||||||
|
gtk_widget_class_bind_template_child (widget_class, PpPPDSelectionDialog, ppd_selection_select_button);
|
||||||
|
gtk_widget_class_bind_template_child (widget_class, PpPPDSelectionDialog, ppd_spinner);
|
||||||
|
gtk_widget_class_bind_template_child (widget_class, PpPPDSelectionDialog, progress_label);
|
||||||
|
gtk_widget_class_bind_template_child (widget_class, PpPPDSelectionDialog, ppd_selection_manufacturers_treeview);
|
||||||
|
gtk_widget_class_bind_template_child (widget_class, PpPPDSelectionDialog, ppd_selection_models_treeview);
|
||||||
|
|
||||||
|
object_class->dispose = pp_ppd_selection_dialog_dispose;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
pp_ppd_selection_dialog_init (PpPPDSelectionDialog *self)
|
pp_ppd_selection_dialog_init (PpPPDSelectionDialog *self)
|
||||||
{
|
{
|
||||||
g_autoptr(GError) error = NULL;
|
gtk_widget_init_template (GTK_WIDGET (self));
|
||||||
gchar *objects[] = { "ppd-selection-dialog", NULL };
|
|
||||||
guint builder_result;
|
|
||||||
|
|
||||||
self->builder = gtk_builder_new ();
|
|
||||||
|
|
||||||
builder_result = gtk_builder_add_objects_from_resource (self->builder,
|
|
||||||
"/org/gnome/control-center/printers/ppd-selection-dialog.ui",
|
|
||||||
objects, &error);
|
|
||||||
|
|
||||||
if (builder_result == 0)
|
|
||||||
{
|
|
||||||
g_warning ("Could not load ui: %s", error->message);
|
|
||||||
}
|
|
||||||
|
|
||||||
self->dialog = (GtkWidget *) gtk_builder_get_object (self->builder, "ppd-selection-dialog");
|
|
||||||
|
|
||||||
/* connect signals */
|
|
||||||
g_signal_connect (self->dialog, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), NULL);
|
|
||||||
g_signal_connect_object (self->dialog, "response", G_CALLBACK (ppd_selection_dialog_response_cb), self, G_CONNECT_SWAPPED);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gchar *
|
gchar *
|
||||||
|
|
|
@ -26,10 +26,9 @@
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
#define PP_TYPE_PPD_SELECTION_DIALOG (pp_ppd_selection_dialog_get_type ())
|
#define PP_TYPE_PPD_SELECTION_DIALOG (pp_ppd_selection_dialog_get_type ())
|
||||||
G_DECLARE_FINAL_TYPE (PpPPDSelectionDialog, pp_ppd_selection_dialog, PP, PPD_SELECTION_DIALOG, GObject)
|
G_DECLARE_FINAL_TYPE (PpPPDSelectionDialog, pp_ppd_selection_dialog, PP, PPD_SELECTION_DIALOG, GtkDialog)
|
||||||
|
|
||||||
PpPPDSelectionDialog *pp_ppd_selection_dialog_new (GtkWindow *parent,
|
PpPPDSelectionDialog *pp_ppd_selection_dialog_new (PPDList *ppd_list,
|
||||||
PPDList *ppd_list,
|
|
||||||
const gchar *manufacturer,
|
const gchar *manufacturer,
|
||||||
UserResponseCallback user_callback,
|
UserResponseCallback user_callback,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<!-- Generated with glade 3.18.3 -->
|
<!-- Generated with glade 3.18.3 -->
|
||||||
<interface>
|
<interface>
|
||||||
<requires lib="gtk+" version="3.12"/>
|
<requires lib="gtk+" version="3.12"/>
|
||||||
<object class="GtkDialog" id="ppd-selection-dialog">
|
<template class="PpPPDSelectionDialog" parent="GtkDialog">
|
||||||
<property name="width_request">600</property>
|
<property name="width_request">600</property>
|
||||||
<property name="height_request">400</property>
|
<property name="height_request">400</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="layout_style">end</property>
|
<property name="layout_style">end</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton" id="ppd-selection-cancel-button">
|
<object class="GtkButton" id="ppd_selection_cancel_button">
|
||||||
<property name="label" translatable="yes">Cancel</property>
|
<property name="label" translatable="yes">Cancel</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton" id="ppd-selection-select-button">
|
<object class="GtkButton" id="ppd_selection_select_button">
|
||||||
<property name="label" translatable="yes">Select</property>
|
<property name="label" translatable="yes">Select</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="sensitive">False</property>
|
<property name="sensitive">False</property>
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSpinner" id="ppd-spinner">
|
<object class="GtkSpinner" id="ppd_spinner">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="width_request">24</property>
|
<property name="width_request">24</property>
|
||||||
<property name="height_request">24</property>
|
<property name="height_request">24</property>
|
||||||
|
@ -68,7 +68,7 @@
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel" id="progress-label">
|
<object class="GtkLabel" id="progress_label">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="no_show_all">True</property>
|
<property name="no_show_all">True</property>
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
<property name="hscrollbar_policy">never</property>
|
<property name="hscrollbar_policy">never</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow_type">in</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkTreeView" id="ppd-selection-manufacturers-treeview">
|
<object class="GtkTreeView" id="ppd_selection_manufacturers_treeview">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<child internal-child="selection">
|
<child internal-child="selection">
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<property name="shadow_type">in</property>
|
<property name="shadow_type">in</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkTreeView" id="ppd-selection-models-treeview">
|
<object class="GtkTreeView" id="ppd_selection_models_treeview">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">True</property>
|
<property name="can_focus">True</property>
|
||||||
<child internal-child="selection">
|
<child internal-child="selection">
|
||||||
|
@ -158,8 +158,8 @@
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<action-widgets>
|
<action-widgets>
|
||||||
<action-widget response="-6">ppd-selection-cancel-button</action-widget>
|
<action-widget response="-6">ppd_selection_cancel_button</action-widget>
|
||||||
<action-widget response="-5">ppd-selection-select-button</action-widget>
|
<action-widget response="-5">ppd_selection_select_button</action-widget>
|
||||||
</action-widgets>
|
</action-widgets>
|
||||||
</object>
|
</template>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue