aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AdminPanel/Shared
diff options
context:
space:
mode:
authorAngelo Naselli <anaselli@linux.it>2014-06-24 15:46:33 +0200
committerAngelo Naselli <anaselli@linux.it>2014-06-24 15:46:33 +0200
commitf30b6901ddffa5e2a523f2b23953788d55286006 (patch)
tree2ba391a5c84244ed2b04c9c8ec758a678a922288 /lib/AdminPanel/Shared
parent4f80ad579583eceeca0411557af092de2a363d7b (diff)
downloadcolin-keep-f30b6901ddffa5e2a523f2b23953788d55286006.tar
colin-keep-f30b6901ddffa5e2a523f2b23953788d55286006.tar.gz
colin-keep-f30b6901ddffa5e2a523f2b23953788d55286006.tar.bz2
colin-keep-f30b6901ddffa5e2a523f2b23953788d55286006.tar.xz
colin-keep-f30b6901ddffa5e2a523f2b23953788d55286006.zip
Managed leaf only selection (param any_item_selection to avoid)
Diffstat (limited to 'lib/AdminPanel/Shared')
-rw-r--r--lib/AdminPanel/Shared/GUI.pm21
1 files changed, 15 insertions, 6 deletions
diff --git a/lib/AdminPanel/Shared/GUI.pm b/lib/AdminPanel/Shared/GUI.pm
index a31c451..f5fdc43 100644
--- a/lib/AdminPanel/Shared/GUI.pm
+++ b/lib/AdminPanel/Shared/GUI.pm
@@ -687,17 +687,26 @@ sub ask_fromTreeList {
last;
}
elsif ($widget == $selectButton) {
+ $DB::single = 1;
my $item = $treeWidget->selectedItem();
if ($info->{skip_path} && $info->{skip_path} != 0) {
$choice = $item->label() if ($item);
}
else {
- my $separator = exists $info->{item_separator} ? $info->{item_separator} : '/';
- if ($item) {
- $choice = $item->label();
- my $parent = $item;
- while($parent = $parent->parent()) {
- $choice = $parent->label() . $separator . $choice ;
+ my $getChoice = 1;
+ if (!exists $info->{any_item_selection} || $info->{any_item_selection} != 0) {
+ if ($item) {
+ $getChoice = (!$item->hasChildren());
+ }
+ }
+ if ($getChoice) {
+ my $separator = exists $info->{item_separator} ? $info->{item_separator} : '/';
+ if ($item) {
+ $choice = $item->label();
+ my $parent = $item;
+ while($parent = $parent->parent()) {
+ $choice = $parent->label() . $separator . $choice ;
+ }
}
}
}