[shotwell] Remove deprecated call to render_icon
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [shotwell] Remove deprecated call to render_icon
- Date: Sat, 21 May 2016 15:22:33 +0000 (UTC)
commit 93b29785f4a307dd05554192436126efa8542556
Author: Jens Georg <mail jensge org>
Date: Sat May 21 16:38:09 2016 +0200
Remove deprecated call to render_icon
Signed-off-by: Jens Georg <mail jensge org>
https://bugzilla.gnome.org/show_bug.cgi?id=719188
src/PhotoPage.vala | 5 +--
src/camera/ImportPage.vala | 3 +-
src/util/image.vala | 126 ++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 128 insertions(+), 6 deletions(-)
---
diff --git a/src/PhotoPage.vala b/src/PhotoPage.vala
index 6c0f7e6..ce57c2f 100644
--- a/src/PhotoPage.vala
+++ b/src/PhotoPage.vala
@@ -1160,11 +1160,8 @@ public abstract class EditingHostPage : SinglePhotoPage {
}
}
if (pixbuf == null) {
- // Create empty pixbuf.
- pixbuf = AppWindow.get_instance().render_icon("image-missing",
- Gtk.IconSize.DIALOG, null);
+ pixbuf = get_placeholder_pixbuf();
get_canvas_scaling().perform_on_pixbuf(pixbuf, Gdk.InterpType.NEAREST, true);
-
}
return pixbuf;
}
diff --git a/src/camera/ImportPage.vala b/src/camera/ImportPage.vala
index 85c2810..daece35 100644
--- a/src/camera/ImportPage.vala
+++ b/src/camera/ImportPage.vala
@@ -289,8 +289,7 @@ class ImportPreview : MediaSourceItem {
bool using_placeholder = (pixbuf == null);
if (pixbuf == null) {
if (placeholder_preview == null) {
- placeholder_preview = AppWindow.get_instance().render_icon("image-missing",
- Gtk.IconSize.DIALOG, null);
+ placeholder_preview = get_placeholder_pixbuf();
placeholder_preview = scale_pixbuf(placeholder_preview, MAX_SCALE,
Gdk.InterpType.BILINEAR, true);
}
diff --git a/src/util/image.vala b/src/util/image.vala
index 7a311c1..92e276a 100644
--- a/src/util/image.vala
+++ b/src/util/image.vala
@@ -4,6 +4,116 @@
* See the COPYING file in this distribution.
*/
+
+/* XPM */
+private const string fallback_image_missing[] = {
+/* columns rows colors chars-per-pixel */
+"48 48 54 1 ",
+" c #6A6D67",
+". c #6C6E69",
+"X c #72746F",
+"o c #747672",
+"O c #777974",
+"+ c #797B77",
+"@ c #7C7E7A",
+"# c #7F817C",
+"$ c #81837F",
+"% c #848682",
+"& c #878984",
+"* c #888A86",
+"= c #8C8D8A",
+"- c #8F908C",
+"; c #90928E",
+": c #949591",
+"> c #969894",
+", c #999B96",
+"< c #9C9E9A",
+"1 c #9FA09C",
+"2 c #A1A39E",
+"3 c #A4A6A2",
+"4 c #A6A9A4",
+"5 c #A9ABA6",
+"6 c #ACADA9",
+"7 c #AEB1AB",
+"8 c #B1B2AF",
+"9 c #B3B4B1",
+"0 c #B6B9B3",
+"q c #B9BCB6",
+"w c #BDBEBA",
+"e c #BEC2BB",
+"r c #C1C4BE",
+"t c #C5C5C2",
+"y c #C6C9C3",
+"u c #C9CCC6",
+"i c #CCCDCB",
+"p c #CED2CA",
+"a c #D2D6CE",
+"s c #D5D5D3",
+"d c #D7D8D5",
+"f c #D9D9D6",
+"g c #DCDCDA",
+"h c #DFE0DD",
+"j c #E0E0DE",
+"k c #E4E4E2",
+"l c #E7E8E5",
+"z c #E9E9E7",
+"x c #EDEDEC",
+"c c #EFF0EE",
+"v c #F1F1EF",
+"b c #F2F2F1",
+"n c #FFFFFF",
+"m c None",
+/* pixels */
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+"mmaaaaaaaaaasaisaaaaaaaaaaaaaaaaaaapppiipuuuuumm",
+"mannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnym",
+"manbbbbbbbbbvbbvvvvxvvvbvvvvvvvvccccccxxvxvxxnym",
+"manbt89898888988888888888999999999999999999txnrm",
+"manb6======================-;;=;;;;;;;;;;=:7znrm",
+"manv6&%%**%*%%%%*%%****=======;==;;;;=;=;==7znem",
+"manv4%%%%$%%%%%%%%%%%=****=======;==-======6znwm",
+"manx3%%#$$$$##%#$%%%*%**==========-=--=====6znqm",
+"manx1$ %#$@$###%%%%=****=*===--;;----====*=5lnqm",
+"manx<@@@@@@@@##%$%%%%****========-==-======5kn0m",
+"manz<@@@+ +@@@#$%%%%%=%=%===;=:=--------=-*4kn8m",
+"manz>O+O+O+@@@#$$%%%%========;;=--------=*=3kn9m",
+"mpnl:OOOOO+@@$##%%%%%=%=====;=;;--;-----===3kn8m",
+"munl;OooOOO@@@#$%%%%%======;;;;;:;;;;;---==1hn7m",
+"munl;oXoOO+ ###$%%=%=======;::;::::;;---&#+-gn7m",
+"mynk*XXooOO+$$#$%%%%=%===;;:;:::::;:-$#XooX-fn5m",
+"mynk*XXOOO@@$$$$%%=%====;::::>::;*#OXXXXXXX*dn5m",
+"mrnk*oOO@@@#$$$$%=====::::>>>=% OXOooXXXooo&dn3m",
+"mrnj*++ $$$$**$===-;;::>>:= Ooo@XOOoo#o#OOO=fn3m",
+"menj* #$$$$$**===;;:::=%@@@@@@O #O#Oo#o#++@;gn2m",
+"menj*$$$$&**===;:;=*#@@@@@@@@@@@#######o##%>gn2m",
+"menh*$$%**===;=*%###########%@@@###$####$%=,gn1m",
+"m0nj=%***=**&$$$%$$$%$$%$$$$%$$$$$$$$$$%*;:2hn<m",
+"m0nj****&&&$$&&$%%%%%%%%%%%%%%%%$$*$%%%*;>13gn,m",
+"m0ng****&&&&&&&&&&&&*%*%*%%*%******%**-:,136kz;m",
+"m0nh***$&&&&&&&&&&&&%**********%*$***;:,1358r7*m",
+"m8ng*&&&&&&&&&*$&*&&&&$=$=$=&&&&&&**=:,<11>$65mm",
+"m7ng*&&&&&&&&&**&&&&&&**=$-$&&&&&&*-:,1..&1wi:mm",
+"m7ng&&&&&&&&=$*$&&&&&***$$$$&&&***=>,1<onxsi6*mm",
+"m6nf*&&&&&*&$***&&&&*$*$--$-&&&%*=;,13,:ztw9%mmm",
+"m5nf*%&&&&&&=$=$%*&&**%*$$&&&&**=>,225;5srw%mmmm",
+"m4nf3*&&**&&$-$-*******%$;&&*&*->,2365+ui7$mmmmm",
+"m3nsfffdddsddaffssssdassgaaaassddfgjg4wu;ommmmmm",
+"m3nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnvq3<$.mmmmmmm",
+"mm2211111,<,,,,,,>>>>:::;::;----===== mmmmmmmmmm",
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
+"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"
+};
+
bool is_color_parsable(string spec) {
Gdk.Color color;
return Gdk.Color.parse(spec, out color);
@@ -29,6 +139,22 @@ void set_source_color_from_string(Cairo.Context ctx, string spec) {
private const int MIN_SCALED_WIDTH = 10;
private const int MIN_SCALED_HEIGHT = 10;
+Gdk.Pixbuf get_placeholder_pixbuf () {
+ // Create empty pixbuf.
+ Gdk.Pixbuf? pixbuf = null;
+
+ try {
+ var icon_theme = Gtk.IconTheme.get_default ();
+ pixbuf = icon_theme.load_icon("image-missing",
+ Gtk.IconSize.DIALOG, 0);
+ } catch (Error error) {
+ pixbuf = new Gdk.Pixbuf.from_xpm_data(fallback_image_missing);
+ warning("Could not load icon from theme: %s", error.message);
+ }
+
+ return pixbuf;
+}
+
Gdk.Pixbuf scale_pixbuf(Gdk.Pixbuf pixbuf, int scale, Gdk.InterpType interp, bool scale_up) {
Dimensions original = Dimensions.for_pixbuf(pixbuf);
Dimensions scaled = original.get_scaled(scale, scale_up);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]