aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xuserdrake28
1 files changed, 27 insertions, 1 deletions
diff --git a/userdrake b/userdrake
index 827433f..d88070d 100755
--- a/userdrake
+++ b/userdrake
@@ -33,7 +33,7 @@ use interactive;
use POSIX qw(mktime ceil);
use USER;
#Only for Debugging
-#use Devel::Peek;
+use Devel::Peek;
use Gtk2::Gdk::Keysyms;
my $conffile = '/etc/sysconfig/userdrake';
@@ -199,6 +199,29 @@ sub Refresh {
RefreshGroupsFull($filt, $strfilt);
GrayDelEdit()
}
+sub GetFaceIcon {
+ my $i = 0; my @m;
+ my @icones = @m = any::facesnames('');
+ print "@icones\n";
+ gtkpack_(my $hb = Gtk2::HBox->new(0, 2),
+ 0, Gtk2::Label->new(N("Choose Icon"). ' '),
+ 0, my $b = Gtk2::Button->new
+ );
+ my $set = sub {
+ gtkdestroy($us->{o}->{icon});
+ my $f = any::face2png($_[0]);
+ $us->{o}->{icon} = -e $f ? gtkcreate_img($f) : Gtk2::Label->new("No Icon");
+ $b->add($us->{o}->{icon});
+ $us->{o}->{icon}->show;
+ };
+ $set->($us->{o}->{iconval} = splice(@m, rand(@m), 1));
+ $b->signal_connect(clicked => sub {
+ $set->($us->{o}->{iconval} = $icones[$i++]);
+ defined $icones[$i+1] or $i = 0;
+ Dump($us->{o}->{iconval});
+ });
+ $hb
+}
sub AddUser {
my $w = ugtk2->new(N("Create New User"), grab => 1, if_(!$::isEmbedded,transient => $us->{wnd}->{rwindow}), if_(!$::isEmbedded,transient => $us->{wnd}->{rwindow}));
my $dontcreatehomedir = 0; my $is_system = 0;
@@ -216,6 +239,8 @@ sub AddUser {
0, $us->{o}->{userid} = Gtk2::CheckButton->new(N("Specify user ID manually")),
0, gtkset_sensitive(my $h = Gtk2::HBox->new(0, 4), 0),
0, Gtk2::HSeparator->new,
+ 0, GetFaceIcon(),
+ 0, Gtk2::HSeparator->new,
0, gtkpack(Gtk2::HBox->new(1, 20),
map {
my $r = $_->[1];
@@ -272,6 +297,7 @@ sub AddUser {
$userEnt->ShadowWarn(-1); $userEnt->ShadowInact(-1);
$ctx->UserAdd($userEnt, $is_system, $dontcreatehomedir);
$ctx->UserSetPass($userEnt, $u{passwd});
+ defined $us->{o}->{iconval} and any::addKdmIcon('', $u{username}, $us->{o}->{iconval});
Refresh($sysfilter, $stringsearch);
}
}