summaryrefslogtreecommitdiff
path: root/lib/LDFM
diff options
context:
space:
mode:
Diffstat (limited to 'lib/LDFM')
-rw-r--r--lib/LDFM/DialogController.pm43
-rw-r--r--lib/LDFM/MainController.pm35
2 files changed, 76 insertions, 2 deletions
diff --git a/lib/LDFM/DialogController.pm b/lib/LDFM/DialogController.pm
new file mode 100644
index 0000000..7cd7807
--- /dev/null
+++ b/lib/LDFM/DialogController.pm
@@ -0,0 +1,43 @@
+package LDFM::DialogController;
+use utf8;
+use warnings;
+use strict;
+use base 'Gtk2::GladeXML::Simple';
+use Path::Class;
+
+our $VERSION = '0.01';
+
+sub new {
+ my ($class,%params)=@_;
+
+ my $glade_file=dir($params{glade_dir})->file('ldfm-dialog.glade');
+ my $self=$class->SUPER::new($glade_file);
+
+ $self->{domanda}->set_text($params{domanda});
+
+ $self->{risposta}->set_text($params{risposta}||'');
+
+ return $self;
+}
+
+sub run {
+ my ($self)=@_;
+
+ $self->{dialog}->set_default_response('ok');
+
+ my $response=$self->{dialog}->run();
+
+ if ($response eq 'ok') {
+ my $data=$self->{risposta}->get_text();
+ $self->{dialog}->destroy();
+
+ return $data;
+ }
+ else {
+ $self->{dialog}->destroy();
+
+ return;
+ }
+}
+
+1;
diff --git a/lib/LDFM/MainController.pm b/lib/LDFM/MainController.pm
index 9f7a16c..19f7cbe 100644
--- a/lib/LDFM/MainController.pm
+++ b/lib/LDFM/MainController.pm
@@ -4,6 +4,7 @@ use warnings;
use strict;
use base 'Gtk2::GladeXML::Simple';
use Gtk2::Ex::Simple::List;
+use LDFM::DialogController;
use Readonly;
use Path::Class;
@@ -15,6 +16,8 @@ sub new {
my $glade_file=dir($params{glade_dir})->file('ldfm-main.glade');
my $self=$class->SUPER::new($glade_file);
+ $self->{glade_dir}=$params{glade_dir};
+
# cambio le liste con qualcosa di piĆ¹ comodo
$self->simplify_list('left');
$self->simplify_list('right');
@@ -153,7 +156,15 @@ sub mkdir {
my $side=$self->get_selected_side();
my $path=$self->{"cur_${side}_path"};
- warn "Creerei una dir in $path\n";
+ my $dialog=LDFM::DialogController->new(
+ glade_dir => $self->{glade_dir},
+ domanda => "Nuova directory in $path:",
+ );
+ my $response=$dialog->run();
+
+ if ($response) {
+ warn "Creerei la dir $response in $path\n";
+ }
return;
}
@@ -162,6 +173,18 @@ sub delete {
my ($self)=@_;
my @files=$self->get_selected_files();
+ my $num_files=scalar @files;
+
+ my $dialog=Gtk2::MessageDialog->new(
+ $self->{main_window},
+ 'modal',
+ 'warning',
+ 'yes-no',
+ "Cancellare veramente i $num_files file?",
+ );
+ my $response=$dialog->run();
+ $dialog->destroy();
+ return unless $response eq 'yes';
for my $file (@files) {
if (-d $file) {
@@ -181,7 +204,15 @@ sub rename {
my @files=$self->get_selected_files();
if (@files==1) {
- warn "Rinominerei $files[0]\n";
+ my $dialog=LDFM::DialogController->new(
+ glade_dir => $self->{glade_dir},
+ domanda => "Rinomino $files[0] in:",
+ );
+ my $response=$dialog->run();
+
+ if ($response) {
+ warn "Rinominerei $files[0] in $response\n";
+ }
}
else {
warn "Troppa roba selezionata\n";