Skip to content

Commit 2631e87

Browse files
committed
Mark inactive "create" button as gray
Also red border for missing qube name resolves: QubesOS/qubes-issues#9768
1 parent 3d5af8f commit 2631e87

File tree

4 files changed

+25
-4
lines changed

4 files changed

+25
-4
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,7 @@ ENV/
9393
*.swp
9494

9595
*.~undo-tree~
96+
97+
# GTK glade temporary files
98+
*.glade~
99+
*.glade#

qubes_config/new_qube.glade

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<!-- Generated with glade 3.38.2 -->
2+
<!-- Generated with glade 3.40.0 -->
33
<interface>
44
<requires lib="gtk+" version="3.24"/>
55
<!-- interface-css-provider-path qubes-new-qube-light.css -->
@@ -424,10 +424,10 @@
424424
<object class="GtkEntry" id="qube_name">
425425
<property name="visible">True</property>
426426
<property name="can-focus">True</property>
427-
<property name="tooltip-text" translatable="yes">The name of the qube can contain letters from a to z and underscore.</property>
427+
<property name="tooltip-text" translatable="yes">Qube name can have up to 63 characters: A-Z, a-z, numbers and underscores</property>
428428
<property name="max-length">64</property>
429429
<property name="width-chars">32</property>
430-
<property name="placeholder-text" translatable="yes">enter qube name</property>
430+
<property name="placeholder-text" translatable="yes">enter qube name (required)</property>
431431
</object>
432432
<packing>
433433
<property name="expand">False</property>

qubes_config/new_qube/new_qube_app.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ def perform_setup(self):
182182
)
183183

184184
self.qube_name.connect("changed", self._name_changed)
185+
self.qube_name.connect("focus-out-event", self._name_changed)
185186

186187
self.progress_bar_dialog.update_progress(0.1)
187188

@@ -218,6 +219,8 @@ def perform_setup(self):
218219
self.progress_bar_dialog.update_progress(1)
219220
self.progress_bar_dialog.hide()
220221

222+
self.main_window.set_focus(self.qube_name)
223+
221224
def _quit(self, *_args):
222225
self.quit()
223226

@@ -232,11 +235,13 @@ def register_signals():
232235
(str,),
233236
)
234237

235-
def _name_changed(self, entry: Gtk.Entry):
238+
def _name_changed(self, entry: Gtk.Entry, event=None):
236239
if not entry.get_text():
237240
self.create_button.set_sensitive(False)
241+
self.qube_name.get_style_context().add_class("invalid_entry")
238242
else:
239243
self.create_button.set_sensitive(True)
244+
self.qube_name.get_style_context().remove_class("invalid_entry")
240245

241246
def _type_selected(self, button: Gtk.RadioButton):
242247
button_name = button.get_name()

qubes_config/qubes-new-qube-base.css

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,18 @@ radiobutton:checked radio {
5353
color: @text-color;
5454
}
5555

56+
.flat_button:disabled {
57+
background: @dark-gray;
58+
}
59+
60+
.invalid_entry {
61+
border-color: red;
62+
}
63+
64+
.invalid_entry:focus {
65+
box-shadow: none;
66+
}
67+
5668
#applications {
5769
background: @top-background;
5870
margin-top: 10px;

0 commit comments

Comments
 (0)