something-x-dev 1.5.0.dev8__tar.gz → 1.5.0.dev9__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/PKG-INFO +1 -1
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/data/style.css +7 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/pages/home.py +29 -5
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/pyproject.toml +1 -1
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/something_x_dev.egg-info/PKG-INFO +1 -1
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/LICENSE +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/README.md +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/__init__.py +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/application.py +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/bluetooth.py +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/data/__init__.py +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/data/com.something.x.omarchy.desktop +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/pages/__init__.py +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/pages/device.py +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/profiles.py +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/protocol.py +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/splash.py +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/tray.py +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/nothing_app/window.py +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/setup.cfg +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/something_x_dev.egg-info/SOURCES.txt +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/something_x_dev.egg-info/dependency_links.txt +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/something_x_dev.egg-info/entry_points.txt +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/something_x_dev.egg-info/requires.txt +0 -0
- {something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/something_x_dev.egg-info/top_level.txt +0 -0
|
@@ -499,6 +499,13 @@ switch:checked slider {
|
|
|
499
499
|
}
|
|
500
500
|
.connecting-button label { color: rgba(255, 255, 255, 0.22); }
|
|
501
501
|
|
|
502
|
+
/* compact variant for inline row buttons (home page quick connect) */
|
|
503
|
+
.row-action {
|
|
504
|
+
padding: 7px 16px;
|
|
505
|
+
font-size: 10px;
|
|
506
|
+
letter-spacing: 1.2px;
|
|
507
|
+
}
|
|
508
|
+
|
|
502
509
|
/* ── Empty state ─────────────────────────────────────────────────────────── */
|
|
503
510
|
|
|
504
511
|
.empty-title {
|
|
@@ -7,10 +7,11 @@ from ..bluetooth import BluetoothDevice, BluetoothManager, device_icon_name
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class DeviceRow(Gtk.Box):
|
|
10
|
-
def __init__(self, device: BluetoothDevice):
|
|
10
|
+
def __init__(self, device: BluetoothDevice, on_action=None):
|
|
11
11
|
super().__init__(orientation=Gtk.Orientation.HORIZONTAL, spacing=14)
|
|
12
12
|
self.add_css_class("device-card")
|
|
13
13
|
self.device = device
|
|
14
|
+
self._on_action = on_action
|
|
14
15
|
self._build()
|
|
15
16
|
|
|
16
17
|
def _build(self):
|
|
@@ -55,9 +56,22 @@ class DeviceRow(Gtk.Box):
|
|
|
55
56
|
text_box.append(bottom_row)
|
|
56
57
|
self.append(text_box)
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
if self._on_action is not None:
|
|
60
|
+
action_btn = Gtk.Button(label="DISCONNECT" if self.device.connected else "CONNECT")
|
|
61
|
+
action_btn.add_css_class("disconnect-button" if self.device.connected else "connect-button")
|
|
62
|
+
action_btn.add_css_class("row-action")
|
|
63
|
+
action_btn.set_valign(Gtk.Align.CENTER)
|
|
64
|
+
action_btn.connect("clicked", self._on_action_clicked)
|
|
65
|
+
self.append(action_btn)
|
|
66
|
+
else:
|
|
67
|
+
arrow = Gtk.Image.new_from_icon_name("go-next-symbolic")
|
|
68
|
+
arrow.set_opacity(0.3)
|
|
69
|
+
self.append(arrow)
|
|
70
|
+
|
|
71
|
+
def _on_action_clicked(self, btn: Gtk.Button):
|
|
72
|
+
btn.set_sensitive(False)
|
|
73
|
+
btn.set_label("…")
|
|
74
|
+
self._on_action(self.device)
|
|
61
75
|
|
|
62
76
|
|
|
63
77
|
class HomePage(Gtk.Box):
|
|
@@ -176,7 +190,11 @@ class HomePage(Gtk.Box):
|
|
|
176
190
|
self._other_label.set_visible(bool(others))
|
|
177
191
|
self._empty_box.set_visible(not devices)
|
|
178
192
|
|
|
179
|
-
def _make_row(self, device: BluetoothDevice) -> Gtk.
|
|
193
|
+
def _make_row(self, device: BluetoothDevice) -> Gtk.Widget:
|
|
194
|
+
# Only Nothing devices have a detail page; other devices get an inline
|
|
195
|
+
# connect/disconnect button instead of navigation.
|
|
196
|
+
if not device.is_nothing:
|
|
197
|
+
return DeviceRow(device, on_action=self._on_quick_action)
|
|
180
198
|
btn = Gtk.Button()
|
|
181
199
|
btn.set_has_frame(False)
|
|
182
200
|
btn.add_css_class("device-row-btn")
|
|
@@ -185,6 +203,12 @@ class HomePage(Gtk.Box):
|
|
|
185
203
|
btn.connect("clicked", lambda _b, d=device: self.emit("device-selected", d))
|
|
186
204
|
return btn
|
|
187
205
|
|
|
206
|
+
def _on_quick_action(self, device: BluetoothDevice):
|
|
207
|
+
if device.connected:
|
|
208
|
+
self._bt.disconnect_device(device.path)
|
|
209
|
+
else:
|
|
210
|
+
self._bt.connect_device(device.path, on_error=self._refresh_list)
|
|
211
|
+
|
|
188
212
|
def _on_devices_changed(self, _manager):
|
|
189
213
|
self._refresh_list()
|
|
190
214
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/something_x_dev.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/something_x_dev.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/something_x_dev.egg-info/requires.txt
RENAMED
|
File without changes
|
{something_x_dev-1.5.0.dev8 → something_x_dev-1.5.0.dev9}/something_x_dev.egg-info/top_level.txt
RENAMED
|
File without changes
|