Save window positions to userconfig and make use of other configs
This commit is contained in:
parent
e2871d4259
commit
efa49c6ffc
|
@ -99,6 +99,7 @@ sub open_ca {
|
||||||
|
|
||||||
my ($i, $cnf, @lines, $oldca, $index, $bak, $t);
|
my ($i, $cnf, @lines, $oldca, $index, $bak, $t);
|
||||||
|
|
||||||
|
main::printd("Opening ca $opts->{'name'}");
|
||||||
GUI::HELPERS::set_status($main, _(" Opening CA: ").$opts->{'name'});
|
GUI::HELPERS::set_status($main, _(" Opening CA: ").$opts->{'name'});
|
||||||
while(Gtk2->events_pending) {
|
while(Gtk2->events_pending) {
|
||||||
Gtk2->main_iteration;
|
Gtk2->main_iteration;
|
||||||
|
|
23
lib/GUI.pm
23
lib/GUI.pm
|
@ -60,6 +60,8 @@ sub new {
|
||||||
|
|
||||||
bless($self, $class);
|
bless($self, $class);
|
||||||
|
|
||||||
|
my ($section, $x, $y, $w, $h);
|
||||||
|
|
||||||
$self->{'version'} = '0.7.6';
|
$self->{'version'} = '0.7.6';
|
||||||
|
|
||||||
$self->{'words'} = GUI::WORDS->new();
|
$self->{'words'} = GUI::WORDS->new();
|
||||||
|
@ -111,7 +113,16 @@ sub new {
|
||||||
$self->{'mw'}->set_title("TinyCA2 Management $self->{'version'}");
|
$self->{'mw'}->set_title("TinyCA2 Management $self->{'version'}");
|
||||||
|
|
||||||
$self->{'mw'}->set_resizable(1);
|
$self->{'mw'}->set_resizable(1);
|
||||||
$self->{'mw'}->set_default_size(850, 600);
|
$section = $self->{'init'}->{'cfg'}->{window};
|
||||||
|
if(defined($section->{x}) && defined($section->{y})) {
|
||||||
|
# save position for later use after show_all()
|
||||||
|
$self->{'posx'} = $section->{x};
|
||||||
|
$self->{'posy'} = $section->{y};
|
||||||
|
}
|
||||||
|
$w = $section->{w} // 850;
|
||||||
|
$h = $section->{h} // 600;
|
||||||
|
main::printd("Sizing window to $w,$h");
|
||||||
|
$self->{'mw'}->set_default_size($w, $h);
|
||||||
$self->{'mw'}->signal_connect( 'delete_event',
|
$self->{'mw'}->signal_connect( 'delete_event',
|
||||||
sub { HELPERS::exit_clean(0) });
|
sub { HELPERS::exit_clean(0) });
|
||||||
|
|
||||||
|
@ -1350,7 +1361,15 @@ sub show_req_dialog {
|
||||||
$reqtable->attach_defaults($label, 0, 1, 13, 14);
|
$reqtable->attach_defaults($label, 0, 1, 13, 14);
|
||||||
|
|
||||||
$radiobox = Gtk2::HBox->new(0, 0);
|
$radiobox = Gtk2::HBox->new(0, 0);
|
||||||
_fill_radiobox($radiobox, \$opts->{'bits'}, %bit_lengths);
|
# use config if present
|
||||||
|
main::printd("preparing radiobox for type " . $self->{'CA'}->{'cfg'}->{global}{default_req_type});
|
||||||
|
my $bits = \$opts->{'bits'};
|
||||||
|
if ($self->{'CA'}->{'cfg'}->{global}{default_req_type} eq 'user') {
|
||||||
|
$bits = $self->{'CA'}->{'cfg'}->{user}{default_bits} // \$opts->{'bits'};
|
||||||
|
} elsif ($self->{'CA'}->{'cfg'}->{global}{default_req_type} eq 'server') {
|
||||||
|
$bits = $self->{'CA'}->{'cfg'}->{server}{default_bits}// \$opts->{'bits'};
|
||||||
|
}
|
||||||
|
_fill_radiobox($radiobox, \$bits, %bit_lengths);
|
||||||
$reqtable->attach_defaults($radiobox, 1, 2, 13, 14);
|
$reqtable->attach_defaults($radiobox, 1, 2, 13, 14);
|
||||||
|
|
||||||
$label = GUI::HELPERS::create_label(
|
$label = GUI::HELPERS::create_label(
|
||||||
|
|
|
@ -477,7 +477,8 @@ This functions returns nothing;
|
||||||
|
|
||||||
opens a FileChooser dialog to select files or directories. $entry is a
|
opens a FileChooser dialog to select files or directories. $entry is a
|
||||||
reference to the variable, where the selected path shall be stored. If $mode
|
reference to the variable, where the selected path shall be stored. If $mode
|
||||||
is set to "open", then only files with appropriate suffixes are displyed.
|
is set to "open" or "key", then only files with appropriate suffixes are
|
||||||
|
displyed.
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,11 @@ sub show_configbox {
|
||||||
|
|
||||||
$box->add($box->{'vbox'});
|
$box->add($box->{'vbox'});
|
||||||
|
|
||||||
|
# Experts warning top label
|
||||||
|
$label = Gtk2::Label->new();
|
||||||
|
$label->set_markup("<span foreground=\"red\"><b>" . _("Experts only!"). "</b></span>");
|
||||||
|
$box->{'vbox'}->pack_start($label, 1, 1, 8);
|
||||||
|
|
||||||
$box->{'vbox'}->pack_start($box->{'nb'}, 1, 1, 0);
|
$box->{'vbox'}->pack_start($box->{'nb'}, 1, 1, 0);
|
||||||
|
|
||||||
$buttonbox = Gtk2::HButtonBox->new();
|
$buttonbox = Gtk2::HButtonBox->new();
|
||||||
|
|
|
@ -53,6 +53,34 @@ sub read_user_cfg {
|
||||||
return ($cfg);
|
return ($cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub update_user_cfg {
|
||||||
|
my $gui = shift;
|
||||||
|
my ($section);
|
||||||
|
my ($x, $y, $w, $h);
|
||||||
|
|
||||||
|
($x, $y) = $gui->{'mw'}->get_position();
|
||||||
|
($w, $h) = $gui->{'mw'}->get_size();
|
||||||
|
|
||||||
|
if(defined($gui->{'init'}->{'cfg'})) {
|
||||||
|
$section = $gui->{'init'}->{'cfg'}->{window};
|
||||||
|
$section->{x} = $x;
|
||||||
|
$section->{y} = $y;
|
||||||
|
$section->{w} = $w;
|
||||||
|
$section->{h} = $h;
|
||||||
|
$gui->{'init'}->{'cfg'}->write($ENV{HOME}."/.tinycarc", 'utf8');
|
||||||
|
} else {
|
||||||
|
# no user config yet, create new one
|
||||||
|
my $newcfg = Config::Tiny->new();
|
||||||
|
$newcfg->{window} = {
|
||||||
|
x => $x,
|
||||||
|
y => $y,
|
||||||
|
w => $w,
|
||||||
|
h => $h
|
||||||
|
};
|
||||||
|
$newcfg->write($ENV{HOME}."/.tinycarc", 'utf8');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# generate filename from Subject-DN
|
# generate filename from Subject-DN
|
||||||
#
|
#
|
||||||
|
|
16
tinyca2
16
tinyca2
|
@ -100,11 +100,20 @@ if( exists $ENV{'TINYCA_EXPORTDIR'}) {
|
||||||
|
|
||||||
umask(0077);
|
umask(0077);
|
||||||
|
|
||||||
|
# read user config
|
||||||
|
$init->{'cfg'} = HELPERS::read_user_cfg();
|
||||||
|
$init->{'debug'} = (($cfg->{global}->{debug} // '') eq 'true') ? 1 : 0;
|
||||||
|
printd('Debug mode enabled');
|
||||||
|
|
||||||
# create main object and initialize CA
|
# create main object and initialize CA
|
||||||
my $gui = GUI->new($init);
|
my $gui = GUI->new($init);
|
||||||
|
|
||||||
# and now run...
|
# and now run...
|
||||||
$gui->{'mw'}->show_all();
|
$gui->{'mw'}->show_all();
|
||||||
|
if(defined($gui->{'posx'}) && defined($gui->{'posy'})) {
|
||||||
|
printd("Moving window to $gui->{'posx'},$gui->{'posy'}");
|
||||||
|
$gui->{'mw'}->move($gui->{'posx'}, $gui->{'posy'});
|
||||||
|
}
|
||||||
|
|
||||||
# decide what to do on startup
|
# decide what to do on startup
|
||||||
if(@{$gui->{'CA'}->{'calist'}}) {
|
if(@{$gui->{'CA'}->{'calist'}}) {
|
||||||
|
@ -119,7 +128,14 @@ sub _ {
|
||||||
return($s);
|
return($s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub printd {
|
||||||
|
print STDERR "DEBUG: @_\n" if $init->{'debug'};
|
||||||
|
}
|
||||||
|
|
||||||
Gtk2->main();
|
Gtk2->main();
|
||||||
|
|
||||||
|
HELPERS::update_user_cfg($gui);
|
||||||
|
|
||||||
|
printd("normal exit in main");
|
||||||
exit(0);
|
exit(0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue