[glom] ImageGlom: Use G_FILE_ATTRIBUTE_STANDARD_ICON
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glom] ImageGlom: Use G_FILE_ATTRIBUTE_STANDARD_ICON
- Date: Thu, 14 Jul 2011 10:52:00 +0000 (UTC)
commit 7e5226bd5c2efa3a730a0acb2d173e13a0fb993d
Author: Murray Cumming <murrayc murrayc com>
Date: Thu Jul 14 12:51:50 2011 +0200
ImageGlom: Use G_FILE_ATTRIBUTE_STANDARD_ICON
* glom/utility_widgets/imageglom.cc: If G_FILE_ATTRIBUTE_THUMBNAIL_PATH
doesn't work, use the standard icon. This does seem to work.
ChangeLog | 7 +++++++
glom/utility_widgets/imageglom.cc | 28 +++++++++++++++++++++-------
2 files changed, 28 insertions(+), 7 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 93edbdc..0a6bd88 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2011-07-14 Murray Cumming <murrayc murrayc com>
+ ImageGlom: Use G_FILE_ATTRIBUTE_STANDARD_ICON
+
+ * glom/utility_widgets/imageglom.cc: If G_FILE_ATTRIBUTE_THUMBNAIL_PATH
+ doesn't work, use the standard icon. This does seem to work.
+
+2011-07-14 Murray Cumming <murrayc murrayc com>
+
ImageGlom: Try to use G_FILE_ATTRIBUTE_THUMBNAIL_PATH for other file types.
* glom/utility_widgets/imageglom.[h|cc]: show_image_data():
diff --git a/glom/utility_widgets/imageglom.cc b/glom/utility_widgets/imageglom.cc
index 625e76a..36a5e12 100644
--- a/glom/utility_widgets/imageglom.cc
+++ b/glom/utility_widgets/imageglom.cc
@@ -354,6 +354,8 @@ void ImageGlom::show_image_data()
gtk_widget_hide(GTK_WIDGET(m_ev_view));
m_image.show();
m_frame.add(m_image);
+
+ Glib::RefPtr<const Gio::Icon> icon;
bool use_gdkpixbuf = false;
fill_gdkpixbuf_supported_mime_types();
@@ -389,7 +391,8 @@ void ImageGlom::show_image_data()
{
file_info = file->query_info(
G_FILE_ATTRIBUTE_THUMBNAIL_PATH ","
- G_FILE_ATTRIBUTE_THUMBNAILING_FAILED);
+ G_FILE_ATTRIBUTE_THUMBNAILING_FAILED ","
+ G_FILE_ATTRIBUTE_STANDARD_ICON);
}
catch(const Glib::Error& ex)
{
@@ -402,14 +405,19 @@ void ImageGlom::show_image_data()
file_info->get_attribute_byte_string(G_FILE_ATTRIBUTE_THUMBNAIL_PATH);
const bool failed =
file_info->get_attribute_boolean(G_FILE_ATTRIBUTE_THUMBNAILING_FAILED);
- if(filepath.empty())
- {
- std::cerr << G_STRFUNC << ": Could not get attribute G_FILE_ATTRIBUTE_THUMBNAIL_PATH. failed=" << failed << std::endl;
- }
+ if(!filepath.empty())
+ m_pixbuf_original = Gdk::Pixbuf::create_from_file(filepath);
else
{
- //std::cout << "DEBUGDEBUG: filepath=" << filepath << std::endl;
- m_pixbuf_original = Gdk::Pixbuf::create_from_file(filepath);
+ std::cerr << G_STRFUNC << ": Could not get attribute G_FILE_ATTRIBUTE_THUMBNAIL_PATH. failed=" << failed << std::endl;
+
+ //Use the standard icon instead:
+ icon = file_info->get_icon();
+ if(!icon)
+ {
+ std::cerr << G_STRFUNC << ": Could not get G_FILE_ATTRIBUTE_STANDARD_ICON" << std::endl;
+ }
+
}
}
}
@@ -420,8 +428,14 @@ void ImageGlom::show_image_data()
Glib::RefPtr<Gdk::Pixbuf> pixbuf_scaled = get_scaled_image();
m_image.set(pixbuf_scaled);
}
+ else if(icon)
+ {
+ m_image.set(icon, Gtk::ICON_SIZE_DIALOG);
+ }
else
+ {
m_image.set(Gtk::Stock::MISSING_IMAGE, Gtk::ICON_SIZE_DIALOG);
+ }
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]