Printers: Make model label and ip address label selectable
This patch add selectable property into CcEditableEntry and uses it in Printers panel (#651545).
This commit is contained in:
parent
606b6fd88d
commit
337d7535b3
3 changed files with 65 additions and 14 deletions
|
@ -32,6 +32,7 @@ struct _CcEditableEntryPrivate {
|
||||||
|
|
||||||
gchar *text;
|
gchar *text;
|
||||||
gboolean editable;
|
gboolean editable;
|
||||||
|
gboolean selectable;
|
||||||
gint weight;
|
gint weight;
|
||||||
gboolean weight_set;
|
gboolean weight_set;
|
||||||
gdouble scale;
|
gdouble scale;
|
||||||
|
@ -46,6 +47,7 @@ enum {
|
||||||
PROP_0,
|
PROP_0,
|
||||||
PROP_TEXT,
|
PROP_TEXT,
|
||||||
PROP_EDITABLE,
|
PROP_EDITABLE,
|
||||||
|
PROP_SELECTABLE,
|
||||||
PROP_SCALE,
|
PROP_SCALE,
|
||||||
PROP_SCALE_SET,
|
PROP_SCALE_SET,
|
||||||
PROP_WEIGHT,
|
PROP_WEIGHT,
|
||||||
|
@ -122,6 +124,29 @@ cc_editable_entry_get_editable (CcEditableEntry *e)
|
||||||
return e->priv->editable;
|
return e->priv->editable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
cc_editable_entry_set_selectable (CcEditableEntry *e,
|
||||||
|
gboolean selectable)
|
||||||
|
{
|
||||||
|
CcEditableEntryPrivate *priv;
|
||||||
|
|
||||||
|
priv = e->priv;
|
||||||
|
|
||||||
|
if (priv->selectable != selectable) {
|
||||||
|
priv->selectable = selectable;
|
||||||
|
|
||||||
|
gtk_label_set_selectable (priv->label, selectable);
|
||||||
|
|
||||||
|
g_object_notify (G_OBJECT (e), "selectable");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
cc_editable_entry_get_selectable (CcEditableEntry *e)
|
||||||
|
{
|
||||||
|
return e->priv->selectable;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
update_entry_font (GtkWidget *widget,
|
update_entry_font (GtkWidget *widget,
|
||||||
CcEditableEntry *e)
|
CcEditableEntry *e)
|
||||||
|
@ -247,6 +272,9 @@ cc_editable_entry_set_property (GObject *object,
|
||||||
case PROP_EDITABLE:
|
case PROP_EDITABLE:
|
||||||
cc_editable_entry_set_editable (e, g_value_get_boolean (value));
|
cc_editable_entry_set_editable (e, g_value_get_boolean (value));
|
||||||
break;
|
break;
|
||||||
|
case PROP_SELECTABLE:
|
||||||
|
cc_editable_entry_set_selectable (e, g_value_get_boolean (value));
|
||||||
|
break;
|
||||||
case PROP_WEIGHT:
|
case PROP_WEIGHT:
|
||||||
cc_editable_entry_set_weight (e, g_value_get_int (value));
|
cc_editable_entry_set_weight (e, g_value_get_int (value));
|
||||||
break;
|
break;
|
||||||
|
@ -282,6 +310,10 @@ cc_editable_entry_get_property (GObject *object,
|
||||||
g_value_set_boolean (value,
|
g_value_set_boolean (value,
|
||||||
cc_editable_entry_get_editable (e));
|
cc_editable_entry_get_editable (e));
|
||||||
break;
|
break;
|
||||||
|
case PROP_SELECTABLE:
|
||||||
|
g_value_set_boolean (value,
|
||||||
|
cc_editable_entry_get_selectable (e));
|
||||||
|
break;
|
||||||
case PROP_WEIGHT:
|
case PROP_WEIGHT:
|
||||||
g_value_set_int (value,
|
g_value_set_int (value,
|
||||||
cc_editable_entry_get_weight (e));
|
cc_editable_entry_get_weight (e));
|
||||||
|
@ -344,6 +376,12 @@ cc_editable_entry_class_init (CcEditableEntryClass *class)
|
||||||
FALSE,
|
FALSE,
|
||||||
G_PARAM_READWRITE));
|
G_PARAM_READWRITE));
|
||||||
|
|
||||||
|
g_object_class_install_property (object_class, PROP_SELECTABLE,
|
||||||
|
g_param_spec_boolean ("selectable",
|
||||||
|
"Selectable", "Whether the text can be selected by mouse",
|
||||||
|
FALSE,
|
||||||
|
G_PARAM_READWRITE));
|
||||||
|
|
||||||
g_object_class_install_property (object_class, PROP_WEIGHT,
|
g_object_class_install_property (object_class, PROP_WEIGHT,
|
||||||
g_param_spec_int ("weight",
|
g_param_spec_int ("weight",
|
||||||
"Font Weight", "The font weight to use",
|
"Font Weight", "The font weight to use",
|
||||||
|
|
|
@ -52,20 +52,23 @@ struct _CcEditableEntryClass
|
||||||
void (* editing_done) (CcEditableEntry *entry);
|
void (* editing_done) (CcEditableEntry *entry);
|
||||||
};
|
};
|
||||||
|
|
||||||
GType cc_editable_entry_get_type (void) G_GNUC_CONST;
|
GType cc_editable_entry_get_type (void) G_GNUC_CONST;
|
||||||
GtkWidget *cc_editable_entry_new (void);
|
GtkWidget *cc_editable_entry_new (void);
|
||||||
void cc_editable_entry_set_text (CcEditableEntry *entry,
|
void cc_editable_entry_set_text (CcEditableEntry *entry,
|
||||||
const gchar *text);
|
const gchar *text);
|
||||||
const gchar *cc_editable_entry_get_text (CcEditableEntry *entry);
|
const gchar *cc_editable_entry_get_text (CcEditableEntry *entry);
|
||||||
void cc_editable_entry_set_editable (CcEditableEntry *entry,
|
void cc_editable_entry_set_editable (CcEditableEntry *entry,
|
||||||
gboolean editable);
|
gboolean editable);
|
||||||
gboolean cc_editable_entry_get_editable (CcEditableEntry *entry);
|
gboolean cc_editable_entry_get_editable (CcEditableEntry *entry);
|
||||||
void cc_editable_entry_set_weight (CcEditableEntry *entry,
|
void cc_editable_entry_set_selectable (CcEditableEntry *entry,
|
||||||
gint weight);
|
gboolean selectable);
|
||||||
gint cc_editable_entry_get_weight (CcEditableEntry *entry);
|
gboolean cc_editable_entry_get_selectable (CcEditableEntry *entry);
|
||||||
void cc_editable_entry_set_scale (CcEditableEntry *entry,
|
void cc_editable_entry_set_weight (CcEditableEntry *entry,
|
||||||
gdouble scale);
|
gint weight);
|
||||||
gdouble cc_editable_entry_get_scale (CcEditableEntry *entry);
|
gint cc_editable_entry_get_weight (CcEditableEntry *entry);
|
||||||
|
void cc_editable_entry_set_scale (CcEditableEntry *entry,
|
||||||
|
gdouble scale);
|
||||||
|
gdouble cc_editable_entry_get_scale (CcEditableEntry *entry);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
|
|
@ -2560,6 +2560,16 @@ cc_printers_panel_init (CcPrintersPanel *self)
|
||||||
gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP);
|
gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP);
|
||||||
|
|
||||||
|
|
||||||
|
/* Make model label and ip-address label selectable */
|
||||||
|
widget = (GtkWidget*)
|
||||||
|
gtk_builder_get_object (priv->builder, "printer-ip-address-label");
|
||||||
|
cc_editable_entry_set_selectable (CC_EDITABLE_ENTRY (widget), TRUE);
|
||||||
|
|
||||||
|
widget = (GtkWidget*)
|
||||||
|
gtk_builder_get_object (priv->builder, "printer-model-label");
|
||||||
|
cc_editable_entry_set_selectable (CC_EDITABLE_ENTRY (widget), TRUE);
|
||||||
|
|
||||||
|
|
||||||
/* Add unlock button */
|
/* Add unlock button */
|
||||||
priv->permission = (GPermission *)polkit_permission_new_sync (
|
priv->permission = (GPermission *)polkit_permission_new_sync (
|
||||||
"org.opensuse.cupspkhelper.mechanism.all-edit", NULL, NULL, NULL);
|
"org.opensuse.cupspkhelper.mechanism.all-edit", NULL, NULL, NULL);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue