X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=submit%2Fcontest;h=a762d9c7248cc1f5a1afe06da40c0a9fe31646c2;hb=4d52eeffe7f6bcf2bcd16f073aed7aca1ae968a5;hp=29b046e5d8ea5c60e2c11e86c45b1a9c5746dbe8;hpb=3f2f8d57b20a3b9099f7dd9a5f69fdff9d08e6a7;p=eval.git
diff --git a/submit/contest b/submit/contest
index 29b046e..a762d9c 100755
--- a/submit/contest
+++ b/submit/contest
@@ -270,6 +270,7 @@ my $subwin_vbox;
my $subwin_label;
my $bbutton_box;
my $submitting_label;
+my $text_frame;
my $status_label;
my $check_only;
my $submit_filename;
@@ -372,10 +373,42 @@ sub run_submit() {
submit_ok();
}
+sub checks_ok() {
+ if ($check_only) {
+ $status_label->set_markup("Checked successfully");
+ $submitting_label->set_markup("The task has passed the checks.");
+ finish_submit();
+ return;
+ }
+
+ ### FIXME: Record to local history here
+
+ $status_label->set_markup("Submitting");
+ $subwin->show_all;
+
+ # Continue when everything is displayed
+ Glib::Idle->add(sub {
+ $window->Gtk2::Gdk::flush;
+ run_submit();
+ return 0;
+ });
+}
+
+sub checks_override() {
+ $submitting_label = Gtk2::Label->new("Please wait...");
+ $subwin_vbox->pack_start_defaults($submitting_label);
+
+ $subwin->window->set_cursor($busy_cursor);
+ $bbutton_box->destroy;
+ $text_frame->destroy;
+ checks_ok();
+}
+
sub checks_failed($) {
my ($msg) = @_;
$status_label->set_markup("Check failed");
+ $submitting_label->destroy;
my $text_buffer = Gtk2::TextBuffer->new;
$text_buffer->set_text($msg);
@@ -388,34 +421,31 @@ sub checks_failed($) {
$text_scroll->set_policy("automatic", "automatic");
$text_scroll->add($text_view);
- my $text_frame = Gtk2::Frame->new("Checker log");
+ $text_frame = Gtk2::Frame->new("Checker log");
$text_frame->add($text_scroll);
- $submitting_label->destroy;
$subwin_vbox->pack_start_defaults($text_frame);
- finish_submit();
-}
-
-sub checks_ok() {
- if ($check_only) {
- $status_label->set_markup("Checked successfully");
- $submitting_label->set_markup("The task has passed the checks.");
+ if ($check_only || !$conn->{"AllowOverride"}) {
finish_submit();
return;
}
- ### FIXME: Record to local history here
+ my $close_button = Gtk2::Button->new_from_stock('gtk-close');
+ $close_button->signal_connect(clicked => sub { end_submit(1) });
- $status_label->set_markup("Submitting");
- $subwin->show_all;
+ my $anyway_button = Gtk2::Button->new('Submit anyway');
+ $anyway_button->signal_connect(clicked => \&checks_override);
- # Continue when everything is displayed
- Glib::Idle->add(sub {
- $window->Gtk2::Gdk::flush;
- run_submit();
- return 0;
- });
+ $bbutton_box = Gtk2::HButtonBox->new;
+ $bbutton_box->pack_start_defaults($anyway_button);
+ $bbutton_box->pack_start_defaults($close_button);
+ $bbutton_box->set_border_width(5);
+ $subwin_vbox->pack_start($bbutton_box, 0, 0, 10);
+
+ ready("Ready");
+ $subwin->show_all;
+ $subwin->window->set_cursor(undef);
}
sub run_checks() {