Change the old enabled/disabled GTK "Switch" element to a ComboBox
one and add all possible service states, so we can simulate the real
world behaviour with its new states better.

Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com>
---
 src/PVE/HA/Sim/RTHardware.pm | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/src/PVE/HA/Sim/RTHardware.pm b/src/PVE/HA/Sim/RTHardware.pm
index ca15275..0e7c622 100644
--- a/src/PVE/HA/Sim/RTHardware.pm
+++ b/src/PVE/HA/Sim/RTHardware.pm
@@ -295,7 +295,7 @@ sub set_service_state {
     my ($self, $sid) = @_;
 
     my $d = $self->{service_gui}->{$sid} || die "no such service '$sid'";
-    my $state = $d->{enable_btn}->get_active() ? 'started' : 'disabled';
+    my $state = $d->{request_state_cb}->get_active_text();
 
     $self->{service_config} = $self->SUPER::set_service_state($sid, $state);
 
@@ -420,9 +420,9 @@ sub create_service_control {
     $sgrid->set_column_spacing(5);
     $sgrid->set('margin', 5);
 
-    my $w = Gtk3::Label->new('Service');
+    my $w = Gtk3::Label->new('Service ID');
     $sgrid->attach($w, 0, 0, 1, 1);
-    $w = Gtk3::Label->new('Enable');
+    $w = Gtk3::Label->new('Request State');
     $sgrid->attach($w, 1, 0, 1, 1);
     $w = Gtk3::Label->new('Node');
     $sgrid->attach($w, 3, 0, 1, 1);
@@ -440,13 +440,18 @@ sub create_service_control {
        $w = Gtk3::Label->new($sid);
        $sgrid->attach($w, 0, $row, 1, 1);
 
-       $w = Gtk3::Switch->new();
+       $w = Gtk3::ComboBoxText->new();
        $sgrid->attach($w, 1, $row, 1, 1);
-       $w->set_active(1) if $d->{state} eq 'started';
-       $self->{service_gui}->{$sid}->{enable_btn} = $w;
-       $w->signal_connect('notify::active' => sub {
+       my $count = 0;
+       foreach my $state (qw(started stopped disabled)) {
+           $w->append_text($state);
+           $w->set_active($count) if $d->{state} eq $state;
+           $count++;
+       }
+       $self->{service_gui}->{$sid}->{request_state_cb} = $w;
+       $w->signal_connect(changed => sub {
            $self->set_service_state($sid);
-       }),
+       });
 
 
        $w = Gtk3::Button->new('Migrate');
-- 
2.1.4


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to