Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
network-manager-applet
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
39
Issues
39
List
Boards
Labels
Service Desk
Milestones
Merge Requests
6
Merge Requests
6
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
GNOME
network-manager-applet
Commits
74446868
Commit
74446868
authored
Dec 17, 2015
by
Jiří Klimeš
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
editor: populate available Bluetooth devices in Bluetooth page (rh #1271581)
parent
abe1c4aa
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
67 additions
and
28 deletions
+67
-28
src/connection-editor/ce-page-bluetooth.ui
src/connection-editor/ce-page-bluetooth.ui
+9
-8
src/connection-editor/ce-page.c
src/connection-editor/ce-page.c
+9
-5
src/connection-editor/ce-page.h
src/connection-editor/ce-page.h
+1
-0
src/connection-editor/page-bluetooth.c
src/connection-editor/page-bluetooth.c
+42
-9
src/connection-editor/page-ethernet.c
src/connection-editor/page-ethernet.c
+2
-2
src/connection-editor/page-infiniband.c
src/connection-editor/page-infiniband.c
+2
-2
src/connection-editor/page-wifi.c
src/connection-editor/page-wifi.c
+2
-2
No files found.
src/connection-editor/ce-page-bluetooth.ui
View file @
74446868
...
...
@@ -10,13 +10,15 @@
<property
name=
"column_spacing"
>
12
</property>
<property
name=
"row_spacing"
>
6
</property>
<child>
<object
class=
"GtkEntry"
id=
"bluetooth_bdaddr"
>
<object
class=
"GtkBox"
id=
"bluetooth_device_vbox"
>
<property
name=
"orientation"
>
vertical
</property>
<property
name=
"visible"
>
True
</property>
<property
name=
"can_focus"
>
True
</property>
<property
name=
"primary_icon_activatable"
>
False
</property>
<property
name=
"secondary_icon_activatable"
>
False
</property>
<property
name=
"primary_icon_sensitive"
>
True
</property>
<property
name=
"secondary_icon_sensitive"
>
True
</property>
<property
name=
"can_focus"
>
False
</property>
<property
name=
"valign"
>
start
</property>
<property
name=
"spacing"
>
12
</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property
name=
"left_attach"
>
1
</property>
...
...
@@ -25,13 +27,12 @@
</packing>
</child>
<child>
<object
class=
"GtkLabel"
id=
"
label1
"
>
<object
class=
"GtkLabel"
id=
"
bluetooth_device_label
"
>
<property
name=
"visible"
>
True
</property>
<property
name=
"can_focus"
>
False
</property>
<property
name=
"xalign"
>
0
</property>
<property
name=
"label"
translatable=
"yes"
>
_Device:
</property>
<property
name=
"use_underline"
>
True
</property>
<property
name=
"mnemonic_widget"
>
bluetooth_bdaddr
</property>
</object>
<packing>
<property
name=
"x_options"
>
GTK_FILL
</property>
...
...
src/connection-editor/ce-page.c
View file @
74446868
...
...
@@ -308,7 +308,10 @@ _get_device_list (CEPage *self,
if
(
!
G_TYPE_CHECK_INSTANCE_TYPE
(
dev
,
device_type
))
continue
;
ifname
=
nm_device_get_iface
(
NM_DEVICE
(
dev
));
if
(
device_type
==
NM_TYPE_DEVICE_BT
)
ifname
=
nm_device_bt_get_name
(
NM_DEVICE_BT
(
dev
));
else
ifname
=
nm_device_get_iface
(
NM_DEVICE
(
dev
));
if
(
mac_property
)
g_object_get
(
G_OBJECT
(
dev
),
mac_property
,
&
mac
,
NULL
);
...
...
@@ -340,7 +343,7 @@ _device_entry_parse (const char *entry_text, char **first, char **second)
return
TRUE
;
}
sp
=
str
chr
(
entry_text
,
' '
);
sp
=
str
str
(
entry_text
,
" ("
);
if
(
sp
)
{
*
first
=
g_strndup
(
entry_text
,
sp
-
entry_text
);
left
=
sp
+
1
;
...
...
@@ -432,7 +435,8 @@ ce_page_setup_device_combo (CEPage *self,
}
gboolean
ce_page_device_entry_get
(
GtkEntry
*
entry
,
int
type
,
char
**
ifname
,
char
**
mac
,
const
char
*
device_name
,
GError
**
error
)
ce_page_device_entry_get
(
GtkEntry
*
entry
,
int
type
,
gboolean
check_ifname
,
char
**
ifname
,
char
**
mac
,
const
char
*
device_name
,
GError
**
error
)
{
char
*
first
,
*
second
;
const
char
*
ifname_tmp
=
NULL
,
*
mac_tmp
=
NULL
;
...
...
@@ -449,7 +453,7 @@ ce_page_device_entry_get (GtkEntry *entry, int type, char **ifname, char **mac,
if
(
first
)
{
if
(
nm_utils_hwaddr_valid
(
first
,
nm_utils_hwaddr_len
(
type
)))
mac_tmp
=
first
;
else
if
(
nm_utils_iface_valid_name
(
first
))
else
if
(
!
check_ifname
||
nm_utils_iface_valid_name
(
first
))
ifname_tmp
=
first
;
else
valid
=
FALSE
;
...
...
@@ -460,7 +464,7 @@ ce_page_device_entry_get (GtkEntry *entry, int type, char **ifname, char **mac,
mac_tmp
=
second
;
else
valid
=
FALSE
;
}
else
if
(
nm_utils_iface_valid_name
(
second
))
{
}
else
if
(
!
check_ifname
||
nm_utils_iface_valid_name
(
second
))
{
if
(
!
ifname_tmp
)
ifname_tmp
=
second
;
else
...
...
src/connection-editor/ce-page.h
View file @
74446868
...
...
@@ -123,6 +123,7 @@ void ce_page_setup_device_combo (CEPage *self,
gboolean
ce_page_mac_entry_valid
(
GtkEntry
*
entry
,
int
type
,
const
char
*
property_name
,
GError
**
error
);
gboolean
ce_page_interface_name_valid
(
const
char
*
iface
,
const
char
*
property_name
,
GError
**
error
);
gboolean
ce_page_device_entry_get
(
GtkEntry
*
entry
,
int
type
,
gboolean
check_ifname
,
char
**
ifname
,
char
**
mac
,
const
char
*
device_name
,
GError
**
error
);
...
...
src/connection-editor/page-bluetooth.c
View file @
74446868
...
...
@@ -40,7 +40,7 @@ G_DEFINE_TYPE (CEPageBluetooth, ce_page_bluetooth, CE_TYPE_PAGE)
typedef
struct
{
NMSettingBluetooth
*
setting
;
Gtk
Entry
*
bdaddr
;
Gtk
ComboBoxText
*
bdaddr
;
gboolean
disposed
;
}
CEPageBluetoothPrivate
;
...
...
@@ -50,10 +50,24 @@ bluetooth_private_init (CEPageBluetooth *self)
{
CEPageBluetoothPrivate
*
priv
=
CE_PAGE_BLUETOOTH_GET_PRIVATE
(
self
);
GtkBuilder
*
builder
;
GtkWidget
*
vbox
;
GtkLabel
*
label
;
builder
=
CE_PAGE
(
self
)
->
builder
;
priv
->
bdaddr
=
GTK_ENTRY
(
gtk_builder_get_object
(
builder
,
"bluetooth_bdaddr"
));
priv
->
bdaddr
=
GTK_COMBO_BOX_TEXT
(
gtk_combo_box_text_new_with_entry
());
gtk_combo_box_set_entry_text_column
(
GTK_COMBO_BOX
(
priv
->
bdaddr
),
0
);
gtk_widget_set_tooltip_text
(
GTK_WIDGET
(
priv
->
bdaddr
),
_
(
"MAC address of the Bluetooth device. Example: 00:11:22:33:44:55"
));
vbox
=
GTK_WIDGET
(
gtk_builder_get_object
(
builder
,
"bluetooth_device_vbox"
));
gtk_container_add
(
GTK_CONTAINER
(
vbox
),
GTK_WIDGET
(
priv
->
bdaddr
));
gtk_widget_set_halign
(
GTK_WIDGET
(
priv
->
bdaddr
),
GTK_ALIGN_FILL
);
gtk_widget_show_all
(
GTK_WIDGET
(
priv
->
bdaddr
));
/* Set mnemonic widget for Device label */
label
=
GTK_LABEL
(
gtk_builder_get_object
(
builder
,
"bluetooth_device_label"
));
gtk_label_set_mnemonic_widget
(
label
,
GTK_WIDGET
(
priv
->
bdaddr
));
}
...
...
@@ -65,8 +79,10 @@ populate_ui (CEPageBluetooth *self, NMConnection *connection)
const
char
*
bdaddr
;
bdaddr
=
nm_setting_bluetooth_get_bdaddr
(
setting
);
if
(
bdaddr
)
gtk_entry_set_text
(
priv
->
bdaddr
,
bdaddr
);
ce_page_setup_device_combo
(
CE_PAGE
(
self
),
GTK_COMBO_BOX
(
priv
->
bdaddr
),
NM_TYPE_DEVICE_BT
,
NULL
,
bdaddr
,
NM_DEVICE_BT_HW_ADDRESS
,
TRUE
);
g_signal_connect_swapped
(
priv
->
bdaddr
,
"changed"
,
G_CALLBACK
(
ce_page_changed
),
self
);
}
static
void
...
...
@@ -133,12 +149,17 @@ static void
ui_to_setting
(
CEPageBluetooth
*
self
)
{
CEPageBluetoothPrivate
*
priv
=
CE_PAGE_BLUETOOTH_GET_PRIVATE
(
self
);
const
char
*
bdaddr
;
GtkWidget
*
entry
;
char
*
bdaddr
=
NULL
;
entry
=
gtk_bin_get_child
(
GTK_BIN
(
priv
->
bdaddr
));
if
(
entry
)
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_ETHER
,
FALSE
,
NULL
,
&
bdaddr
,
NULL
,
NULL
);
bdaddr
=
gtk_entry_get_text
(
priv
->
bdaddr
);
g_object_set
(
priv
->
setting
,
NM_SETTING_BLUETOOTH_BDADDR
,
bdaddr
&&
*
bdaddr
?
bdaddr
:
NULL
,
NULL
);
g_free
(
bdaddr
);
}
static
gboolean
...
...
@@ -146,9 +167,21 @@ ce_page_validate_v (CEPage *page, NMConnection *connection, GError **error)
{
CEPageBluetooth
*
self
=
CE_PAGE_BLUETOOTH
(
page
);
CEPageBluetoothPrivate
*
priv
=
CE_PAGE_BLUETOOTH_GET_PRIVATE
(
self
);
if
(
!
ce_page_mac_entry_valid
(
priv
->
bdaddr
,
ARPHRD_ETHER
,
_
(
"bdaddr"
),
error
))
return
FALSE
;
GtkWidget
*
entry
;
char
*
bdaddr
=
NULL
;
entry
=
gtk_bin_get_child
(
GTK_BIN
(
priv
->
bdaddr
));
if
(
entry
)
{
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_ETHER
,
FALSE
,
NULL
,
&
bdaddr
,
NULL
,
NULL
);
if
(
!
bdaddr
||
!
nm_utils_hwaddr_valid
(
bdaddr
,
nm_utils_hwaddr_len
(
ARPHRD_ETHER
)))
{
g_set_error
(
error
,
NMA_ERROR
,
NMA_ERROR_GENERIC
,
_
(
"invalid Bluetooth device (%s)"
),
bdaddr
?
bdaddr
:
"null"
);
g_free
(
bdaddr
);
return
FALSE
;
}
g_free
(
bdaddr
);
}
ui_to_setting
(
self
);
return
nm_setting_verify
(
NM_SETTING
(
priv
->
setting
),
NULL
,
error
);
...
...
src/connection-editor/page-ethernet.c
View file @
74446868
...
...
@@ -392,7 +392,7 @@ ui_to_setting (CEPageEthernet *self)
entry
=
gtk_bin_get_child
(
GTK_BIN
(
priv
->
device_combo
));
if
(
entry
)
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_ETHER
,
&
ifname
,
&
device_mac
,
NULL
,
NULL
);
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_ETHER
,
TRUE
,
&
ifname
,
&
device_mac
,
NULL
,
NULL
);
cloned_mac
=
gtk_entry_get_text
(
priv
->
cloned_mac
);
/* Wake-on-LAN */
...
...
@@ -444,7 +444,7 @@ ce_page_validate_v (CEPage *page, NMConnection *connection, GError **error)
entry
=
gtk_bin_get_child
(
GTK_BIN
(
priv
->
device_combo
));
if
(
entry
)
{
if
(
!
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_ETHER
,
NULL
,
NULL
,
_
(
"Ethernet device"
),
error
))
if
(
!
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_ETHER
,
TRUE
,
NULL
,
NULL
,
_
(
"Ethernet device"
),
error
))
return
FALSE
;
}
...
...
src/connection-editor/page-infiniband.c
View file @
74446868
...
...
@@ -192,7 +192,7 @@ ui_to_setting (CEPageInfiniband *self)
entry
=
gtk_bin_get_child
(
GTK_BIN
(
priv
->
device_combo
));
if
(
entry
)
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_INFINIBAND
,
&
ifname
,
&
device_mac
,
NULL
,
NULL
);
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_INFINIBAND
,
TRUE
,
&
ifname
,
&
device_mac
,
NULL
,
NULL
);
g_object_set
(
s_con
,
NM_SETTING_CONNECTION_INTERFACE_NAME
,
ifname
,
...
...
@@ -216,7 +216,7 @@ ce_page_validate_v (CEPage *page, NMConnection *connection, GError **error)
entry
=
gtk_bin_get_child
(
GTK_BIN
(
priv
->
device_combo
));
if
(
entry
)
{
if
(
!
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_INFINIBAND
,
NULL
,
NULL
,
_
(
"infiniband device"
),
error
))
if
(
!
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_INFINIBAND
,
TRUE
,
NULL
,
NULL
,
_
(
"infiniband device"
),
error
))
return
FALSE
;
}
...
...
src/connection-editor/page-wifi.c
View file @
74446868
...
...
@@ -536,7 +536,7 @@ ui_to_setting (CEPageWifi *self)
bssid
=
gtk_entry_get_text
(
GTK_ENTRY
(
entry
));
entry
=
gtk_bin_get_child
(
GTK_BIN
(
priv
->
device_combo
));
if
(
entry
)
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_ETHER
,
&
ifname
,
&
device_mac
,
NULL
,
NULL
);
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_ETHER
,
TRUE
,
&
ifname
,
&
device_mac
,
NULL
,
NULL
);
cloned_mac
=
gtk_entry_get_text
(
priv
->
cloned_mac
);
g_object_set
(
s_con
,
...
...
@@ -576,7 +576,7 @@ ce_page_validate_v (CEPage *page, NMConnection *connection, GError **error)
entry
=
gtk_bin_get_child
(
GTK_BIN
(
priv
->
device_combo
));
if
(
entry
)
{
if
(
!
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_ETHER
,
NULL
,
NULL
,
_
(
"Wi-Fi device"
),
error
))
if
(
!
ce_page_device_entry_get
(
GTK_ENTRY
(
entry
),
ARPHRD_ETHER
,
TRUE
,
NULL
,
NULL
,
_
(
"Wi-Fi device"
),
error
))
return
FALSE
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment