diff options
| author | Andrew rugby471@gmail.com <> | 2011-07-02 16:33:13 +0000 |
|---|---|---|
| committer | Andrew rugby471@gmail.com <> | 2011-07-02 16:33:13 +0000 |
| commit | 9ac541ca23d1205cb01eb42fcd47ae9c4a08ad64 (patch) | |
| tree | d175333e01280f2d7a564fc907c6a4167c9970d5 /src | |
| parent | Correct ustring syntax (diff) | |
| download | inkscape-9ac541ca23d1205cb01eb42fcd47ae9c4a08ad64.tar.gz inkscape-9ac541ca23d1205cb01eb42fcd47ae9c4a08ad64.zip | |
Fixed issues with cancelling downloading of thumbnails and images, all should be well now :)
(bzr r10092.1.34)
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/dialog/ocaldialogs.cpp | 49 | ||||
| -rw-r--r-- | src/ui/dialog/ocaldialogs.h | 2 |
2 files changed, 35 insertions, 16 deletions
diff --git a/src/ui/dialog/ocaldialogs.cpp b/src/ui/dialog/ocaldialogs.cpp index 3194046b8..1295b7fe6 100644 --- a/src/ui/dialog/ocaldialogs.cpp +++ b/src/ui/dialog/ocaldialogs.cpp @@ -671,6 +671,7 @@ void ImportDialog::on_list_results_cursor_changed() if (downloading_thumbnail) { cancellable_thumbnail->cancel(); + cancelled_thumbnail = true; } update_preview(row); @@ -791,6 +792,19 @@ void ImportDialog::on_resource_downloaded(const Glib::RefPtr<Gio::AsyncResult>& void ImportDialog::on_image_downloaded(Glib::ustring path, bool success) { + button_import->set_sensitive(true); + button_close->show(); + button_cancel->hide(); + + // If anything went wrong, show an error message if the user didn't do it + if (!success && !cancelled_image) { + widget_status->set_error(_("Could not download image")); + } + if (!success) { + widget_status->clear(); + return; + } + try { widget_status->clear(); m_signal_response.emit(path); @@ -798,32 +812,32 @@ void ImportDialog::on_image_downloaded(Glib::ustring path, bool success) } catch(Glib::Error) { success = false; } - - // If anything went wrong, show an error message if the user didn't do it - if (!success && !cancellable_image->is_cancelled()) { - widget_status->set_error(_("Could not download image")); - } - - button_import->set_sensitive(true); - button_close->show(); - button_cancel->hide(); + + cancelled_image = false; } void ImportDialog::on_thumbnail_downloaded(Glib::ustring path, bool success) { + downloading_thumbnail = false; + + // If anything went wrong, show an error message if the user didn't do it + if (!success && !cancelled_thumbnail) { + widget_status->set_error(_("Could not download thumbnail file")); + return; + } + if (!success) { + widget_status->clear(); + return; + } + try { widget_status->clear(); preview_files->set_image(path); } catch(Glib::Error) { success = false; } - - // If anything went wrong, show an error message if the user didn't do it - if (!success && !cancellable_image->is_cancelled()) { - widget_status->set_error(_("Could not download thumbnail file")); - } - - downloading_thumbnail = false; + + cancelled_thumbnail = false; } /* @@ -941,6 +955,7 @@ void ImportDialog::on_button_close_clicked() void ImportDialog::on_button_cancel_clicked() { cancellable_image->cancel(); + cancelled_image = true; } /** @@ -1083,6 +1098,8 @@ ImportDialog::ImportDialog(Gtk::Window& parent_window, FileDialogType file_types widget_status = new StatusWidget(); downloading_thumbnail = false; + cancelled_thumbnail = false; + cancelled_image = false; // Packing add(*vbox); diff --git a/src/ui/dialog/ocaldialogs.h b/src/ui/dialog/ocaldialogs.h index 7fb937c81..2ca71d5f7 100644 --- a/src/ui/dialog/ocaldialogs.h +++ b/src/ui/dialog/ocaldialogs.h @@ -473,6 +473,8 @@ private: Glib::RefPtr<Gio::Cancellable> cancellable_image; Glib::RefPtr<Gio::Cancellable> cancellable_thumbnail; bool downloading_thumbnail; + bool cancelled_thumbnail; + bool cancelled_image; void update_label_no_search_results(); void update_preview(int row); |
