Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authortamasmeszaros <meszaros.q@gmail.com>2018-08-30 12:40:06 +0300
committertamasmeszaros <meszaros.q@gmail.com>2018-08-30 12:55:10 +0300
commit15ad0ef2f2b3f93d1e0e2d0c375bcebc20ad4b85 (patch)
treee5295193daeb58cc77a71631e3387d4ce06d8846 /lib
parent9e2d48ff3b5ad09a65b8039ed9cd6bd9d40db488 (diff)
working C++ status bar.
Signed-off-by: tamasmeszaros <meszaros.q@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/Slic3r.pm1
-rw-r--r--lib/Slic3r/GUI/MainFrame.pm6
-rw-r--r--lib/Slic3r/GUI/Plater.pm4
-rw-r--r--lib/Slic3r/GUI/ProgressStatusBar.pm136
4 files changed, 9 insertions, 138 deletions
diff --git a/lib/Slic3r.pm b/lib/Slic3r.pm
index 46627311f..4a178682c 100644
--- a/lib/Slic3r.pm
+++ b/lib/Slic3r.pm
@@ -166,6 +166,7 @@ sub thread_cleanup {
*Slic3r::GUI::Tab::DESTROY = sub {};
*Slic3r::GUI::PresetHints::DESTROY = sub {};
*Slic3r::GUI::TabIface::DESTROY = sub {};
+ *Slic3r::GUI::ProgressStatusBar::DESTROY= sub {};
*Slic3r::OctoPrint::DESTROY = sub {};
*Slic3r::Duet::DESTROY = sub {};
*Slic3r::PresetUpdater::DESTROY = sub {};
diff --git a/lib/Slic3r/GUI/MainFrame.pm b/lib/Slic3r/GUI/MainFrame.pm
index 6b932f92f..50aa3e51d 100644
--- a/lib/Slic3r/GUI/MainFrame.pm
+++ b/lib/Slic3r/GUI/MainFrame.pm
@@ -63,15 +63,11 @@ sub new {
# initialize status bar
$self->{statusbar} = Slic3r::GUI::ProgressStatusBar->new();
- # $self->{statusbar}->SetParent($self, Wx::NewId);
$self->{statusbar}->Embed;
$self->{statusbar}->SetStatusText(L("Version ").$Slic3r::VERSION.L(" - Remember to check for updates at http://github.com/prusa3d/slic3r/releases"));
# Make the global status bar and its progress indicator available in C++
- $appController->set_global_progress_indicator(
- $self->{statusbar}->GetProgId(),
- $self->{statusbar}->GetId(),
- );
+ $appController->set_global_progress_indicator($self->{statusbar});
$appController->set_model($self->{plater}->{model});
$appController->set_print($self->{plater}->{print});
diff --git a/lib/Slic3r/GUI/Plater.pm b/lib/Slic3r/GUI/Plater.pm
index ee2689d16..ffc3b9640 100644
--- a/lib/Slic3r/GUI/Plater.pm
+++ b/lib/Slic3r/GUI/Plater.pm
@@ -1569,7 +1569,9 @@ sub on_progress_event {
my ($self, $percent, $message) = @_;
$self->statusbar->SetProgress($percent);
- $self->statusbar->SetStatusText("$messageā€¦");
+ # TODO: three dot character is not properly translated into C++
+ # $self->statusbar->SetStatusText("$messageā€¦");
+ $self->statusbar->SetStatusText("$message...");
}
# Called when the G-code export finishes, either successfully or with an error.
diff --git a/lib/Slic3r/GUI/ProgressStatusBar.pm b/lib/Slic3r/GUI/ProgressStatusBar.pm
index a696feb7f..edc0c0ce3 100644
--- a/lib/Slic3r/GUI/ProgressStatusBar.pm
+++ b/lib/Slic3r/GUI/ProgressStatusBar.pm
@@ -1,146 +1,18 @@
# Status bar at the bottom of the main screen.
+# Now it just implements cancel cb on perl side, every other functionality is
+# in C++
-package Slic3r::GUI::ProgressStatusBar;
+package Slic3r::GUI::ProgressStatusBar;
use strict;
use warnings;
-# use Wx qw(:gauge :misc);
-# use base 'Wx::StatusBar';
-
our $cancel_cb;
-# sub new {
-# my $class = shift;
-# my $self = $class->SUPER::new(@_);
-
-# $self->{busy} = 0;
-# $self->{timer} = Wx::Timer->new($self);
-# $self->{prog} = Wx::Gauge->new($self, wxGA_HORIZONTAL, 100, wxDefaultPosition, wxDefaultSize);
-# $self->{prog}->Hide;
-# $self->{cancelbutton} = Wx::Button->new($self, -1, "Cancel", wxDefaultPosition, wxDefaultSize);
-# $self->{cancelbutton}->Hide;
-
-# $self->SetFieldsCount(3);
-# $self->SetStatusWidths(-1, 150, 155);
-
-# Wx::Event::EVT_TIMER($self, \&OnTimer, $self->{timer});
-# Wx::Event::EVT_SIZE($self, \&OnSize);
-# Wx::Event::EVT_BUTTON($self, $self->{cancelbutton}, sub {
-# $self->{cancel_cb}->();
-# $self->{cancelbutton}->Hide;
-# });
-
-# return $self;
-# }
-
-# sub DESTROY {
-# my $self = shift;
-# $self->{timer}->Stop if $self->{timer} && $self->{timer}->IsRunning;
-# }
-
-# sub OnSize {
-# my ($self, $event) = @_;
-
-# my %fields = (
-# # 0 is reserved for status text
-# 1 => $self->{cancelbutton},
-# 2 => $self->{prog},
-# );
-
-# foreach (keys %fields) {
-# my $rect = $self->GetFieldRect($_);
-# my $offset = &Wx::wxGTK ? 1 : 0; # add a cosmetic 1 pixel offset on wxGTK
-# my $pos = [$rect->GetX + $offset, $rect->GetY + $offset];
-# $fields{$_}->Move($pos);
-# $fields{$_}->SetSize($rect->GetWidth - $offset, $rect->GetHeight);
-# }
-
-# $event->Skip;
-# }
-
-# sub OnTimer {
-# my ($self, $event) = @_;
-
-# if ($self->{prog}->IsShown) {
-# $self->{timer}->Stop;
-# }
-# $self->{prog}->Pulse if $self->{_busy};
-# }
-
sub SetCancelCallback {
my $self = shift;
my ($cb) = @_;
$cancel_cb = $cb;
- # $cb ? $self->{cancelbutton}->Show : $self->{cancelbutton}->Hide;
+ $cb ? $self->ShowCancelButton : $self->HideCancelButton;
}
-# sub Run {
-# my $self = shift;
-# my $rate = shift || 100;
-# if (!$self->{timer}->IsRunning) {
-# $self->{timer}->Start($rate);
-# }
-# }
-
-# sub GetProgress {
-# my $self = shift;
-# return $self->{prog}->GetValue;
-# }
-
-# sub SetProgress {
-# my $self = shift;
-# my ($val) = @_;
-# if (!$self->{prog}->IsShown) {
-# $self->ShowProgress(1);
-# }
-# if ($val == $self->{prog}->GetRange) {
-# $self->{prog}->SetValue(0);
-# $self->ShowProgress(0);
-# } else {
-# $self->{prog}->SetValue($val);
-# }
-# }
-
-# sub SetRange {
-# my $self = shift;
-# my ($val) = @_;
-
-# if ($val != $self->{prog}->GetRange) {
-# $self->{prog}->SetRange($val);
-# }
-# }
-
-# sub ShowProgress {
-# my $self = shift;
-# my ($show) = @_;
-
-# $self->{prog}->Show($show);
-# $self->{prog}->Pulse;
-# }
-
-# sub StartBusy {
-# my $self = shift;
-# my $rate = shift || 100;
-
-# $self->{_busy} = 1;
-# $self->ShowProgress(1);
-# if (!$self->{timer}->IsRunning) {
-# $self->{timer}->Start($rate);
-# }
-# }
-
-# sub StopBusy {
-# my $self = shift;
-
-# $self->{timer}->Stop;
-# $self->ShowProgress(0);
-# $self->{prog}->SetValue(0);
-# $self->{_busy} = 0;
-# }
-
-# sub IsBusy {
-# my $self = shift;
-# return $self->{_busy};
-# }
-
1;