Author: bdonlan
Date: 2004-07-06 19:43:51 -0400 (Tue, 06 Jul 2004)
New Revision: 308

Modified:
   trunk/clients/haver-gtk/TODO
   trunk/clients/haver-gtk/bin/haver-gtk.pl
   trunk/clients/haver-gtk/lib/Haver/UI/Gtk/ServerEditDialog.pm
   trunk/clients/haver-gtk/lib/Haver/UI/Gtk/ServerSelectDialog.pm
Log:
* haver-gtk/lib/Haver/UI/Gtk/ServerEditDialog.pm: Perform basic validation on
  server settings.
* haver-gtk/lib/Haver/UI/Gtk/ServerSelectDialog.pm: Remove check for empty
  Name field as it is done by ServerEditDialog
* haver-gtk/bin/haver-gtk.pl: Remove TODO comment. Add default port setting
  7070.
* haver-gtk/TODO: Remove finished TODO entry.


Modified: trunk/clients/haver-gtk/TODO
===================================================================
--- trunk/clients/haver-gtk/TODO        2004-07-06 23:14:59 UTC (rev 307)
+++ trunk/clients/haver-gtk/TODO        2004-07-06 23:43:51 UTC (rev 308)
@@ -1,5 +1,4 @@
 TODO:
-* Validation in server editing dialog
 * Password prompt dialog
 * Compositing command parser
 * Hilight active tabs

Modified: trunk/clients/haver-gtk/bin/haver-gtk.pl
===================================================================
--- trunk/clients/haver-gtk/bin/haver-gtk.pl    2004-07-06 23:14:59 UTC (rev 
307)
+++ trunk/clients/haver-gtk/bin/haver-gtk.pl    2004-07-06 23:43:51 UTC (rev 
308)
@@ -321,11 +321,10 @@
        if (!defined $pass) {
                $pass = ''; # TODO: prompt
        }
-       # TODO: validation in ServerEditDialog
        $config->{Address} =~ /^([^:]+)(?::(\d+))?$/ or return;
        $kernel->post('haver', 'connect',
                Host => $1,
-               Port => $2,
+               Port => $2 || 7070,
                UID => $config->{UID} || $user,
                Password => $pass,
        );

Modified: trunk/clients/haver-gtk/lib/Haver/UI/Gtk/ServerEditDialog.pm
===================================================================
--- trunk/clients/haver-gtk/lib/Haver/UI/Gtk/ServerEditDialog.pm        
2004-07-06 23:14:59 UTC (rev 307)
+++ trunk/clients/haver-gtk/lib/Haver/UI/Gtk/ServerEditDialog.pm        
2004-07-06 23:43:51 UTC (rev 308)
@@ -28,7 +28,7 @@
 
 use Gtk;
 use Data::Dumper;
-#use POE; 
+use Haver::UI::Gtk::ButtonDialog;
 
 my @fieldlist = qw(Name UID Address Password);
 
@@ -195,9 +195,30 @@
        delete $self->{config}{Password} unless $savepass;
 }
 
+sub validate {
+       my $self = shift;
+       my $config = $self->{config};
+       if ($config->{Name} =~ /^\s*$/) {
+               Haver::UI::Gtk::ButtonDialog->new(
+                       Title => 'Error',
+                       Text => 'You must specify a server name.',
+               );
+               return 0;
+       }
+       unless ($config->{Address} =~ /^ [^:]+ (?: : (\d+) )? $/x) {
+               Haver::UI::Gtk::ButtonDialog->new(
+                       Title => 'Error',
+                       Text => 'The specified address is invalid.',
+               );
+               return 0;
+       }
+       return 1;
+}
+
 sub btn_OK {
        my $self = shift;
        $self->save;
+       $self->validate or return;
        $self->{parent}->server_save($self->{config});
 }
 

Modified: trunk/clients/haver-gtk/lib/Haver/UI/Gtk/ServerSelectDialog.pm
===================================================================
--- trunk/clients/haver-gtk/lib/Haver/UI/Gtk/ServerSelectDialog.pm      
2004-07-06 23:14:59 UTC (rev 307)
+++ trunk/clients/haver-gtk/lib/Haver/UI/Gtk/ServerSelectDialog.pm      
2004-07-06 23:43:51 UTC (rev 308)
@@ -197,14 +197,6 @@
 
 sub server_save {
        my ($self, $config) = @_;
-       if ($config->{Name} eq '') {
-               Haver::UI::Gtk::ButtonDialog->new(
-                       Title => 'Error',
-                       Text => 'You must specify a name for the server.',
-                       TextPad => 20,
-               );
-               return;
-       }
        if (!exists($config->{Oldname}) or $config->{Name} ne 
$config->{Oldname}) {
                if (exists $self->{servers}{$config->{Name}}) {
                        Haver::UI::Gtk::ButtonDialog->new(


Reply via email to