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;
|
||||
gboolean editable;
|
||||
gboolean selectable;
|
||||
gint weight;
|
||||
gboolean weight_set;
|
||||
gdouble scale;
|
||||
|
@ -46,6 +47,7 @@ enum {
|
|||
PROP_0,
|
||||
PROP_TEXT,
|
||||
PROP_EDITABLE,
|
||||
PROP_SELECTABLE,
|
||||
PROP_SCALE,
|
||||
PROP_SCALE_SET,
|
||||
PROP_WEIGHT,
|
||||
|
@ -122,6 +124,29 @@ cc_editable_entry_get_editable (CcEditableEntry *e)
|
|||
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
|
||||
update_entry_font (GtkWidget *widget,
|
||||
CcEditableEntry *e)
|
||||
|
@ -247,6 +272,9 @@ cc_editable_entry_set_property (GObject *object,
|
|||
case PROP_EDITABLE:
|
||||
cc_editable_entry_set_editable (e, g_value_get_boolean (value));
|
||||
break;
|
||||
case PROP_SELECTABLE:
|
||||
cc_editable_entry_set_selectable (e, g_value_get_boolean (value));
|
||||
break;
|
||||
case PROP_WEIGHT:
|
||||
cc_editable_entry_set_weight (e, g_value_get_int (value));
|
||||
break;
|
||||
|
@ -282,6 +310,10 @@ cc_editable_entry_get_property (GObject *object,
|
|||
g_value_set_boolean (value,
|
||||
cc_editable_entry_get_editable (e));
|
||||
break;
|
||||
case PROP_SELECTABLE:
|
||||
g_value_set_boolean (value,
|
||||
cc_editable_entry_get_selectable (e));
|
||||
break;
|
||||
case PROP_WEIGHT:
|
||||
g_value_set_int (value,
|
||||
cc_editable_entry_get_weight (e));
|
||||
|
@ -344,6 +376,12 @@ cc_editable_entry_class_init (CcEditableEntryClass *class)
|
|||
FALSE,
|
||||
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_param_spec_int ("weight",
|
||||
"Font Weight", "The font weight to use",
|
||||
|
|
|
@ -52,20 +52,23 @@ struct _CcEditableEntryClass
|
|||
void (* editing_done) (CcEditableEntry *entry);
|
||||
};
|
||||
|
||||
GType cc_editable_entry_get_type (void) G_GNUC_CONST;
|
||||
GtkWidget *cc_editable_entry_new (void);
|
||||
void cc_editable_entry_set_text (CcEditableEntry *entry,
|
||||
const gchar *text);
|
||||
const gchar *cc_editable_entry_get_text (CcEditableEntry *entry);
|
||||
void cc_editable_entry_set_editable (CcEditableEntry *entry,
|
||||
gboolean editable);
|
||||
gboolean cc_editable_entry_get_editable (CcEditableEntry *entry);
|
||||
void cc_editable_entry_set_weight (CcEditableEntry *entry,
|
||||
gint weight);
|
||||
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);
|
||||
GType cc_editable_entry_get_type (void) G_GNUC_CONST;
|
||||
GtkWidget *cc_editable_entry_new (void);
|
||||
void cc_editable_entry_set_text (CcEditableEntry *entry,
|
||||
const gchar *text);
|
||||
const gchar *cc_editable_entry_get_text (CcEditableEntry *entry);
|
||||
void cc_editable_entry_set_editable (CcEditableEntry *entry,
|
||||
gboolean editable);
|
||||
gboolean cc_editable_entry_get_editable (CcEditableEntry *entry);
|
||||
void cc_editable_entry_set_selectable (CcEditableEntry *entry,
|
||||
gboolean selectable);
|
||||
gboolean cc_editable_entry_get_selectable (CcEditableEntry *entry);
|
||||
void cc_editable_entry_set_weight (CcEditableEntry *entry,
|
||||
gint weight);
|
||||
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
|
||||
|
||||
|
|
|
@ -2560,6 +2560,16 @@ cc_printers_panel_init (CcPrintersPanel *self)
|
|||
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 */
|
||||
priv->permission = (GPermission *)polkit_permission_new_sync (
|
||||
"org.opensuse.cupspkhelper.mechanism.all-edit", NULL, NULL, NULL);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue