summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew rugby471@gmail.com <>2011-07-02 16:33:13 +0000
committerAndrew rugby471@gmail.com <>2011-07-02 16:33:13 +0000
commit9ac541ca23d1205cb01eb42fcd47ae9c4a08ad64 (patch)
treed175333e01280f2d7a564fc907c6a4167c9970d5 /src
parentCorrect ustring syntax (diff)
downloadinkscape-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.cpp49
-rw-r--r--src/ui/dialog/ocaldialogs.h2
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);