Skip to content

Commit 0effb99

Browse files
committed
only make tilesource when needed
1 parent 5842349 commit 0effb99

File tree

2 files changed

+26
-31
lines changed

2 files changed

+26
-31
lines changed

TODO

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,6 @@
66
- "reset" in display bar resets the position of scale/offset widgets, but does
77
not reset the menu items (eg. tick on falsecolour)
88

9-
- can we make tilesource on demand in iimageview_refresh?
10-
11-
might speed up workspace load
12-
13-
- we are not always refreshing thumbnails after load completes
14-
159
- shrink as well as expand tiles in tilecache_snapshot
1610

1711
- long formula should truncate with an ellipsis

src/iimageview.c

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ iimageview_refresh(vObject *vobject)
133133
Tilesource *tilesource;
134134

135135
#ifdef DEBUG
136-
#endif /*DEBUG*/
137136
printf("iimageview_refresh:\n");
137+
#endif /*DEBUG*/
138138

139139
// on the first refresh, register with the enclosing workspaceview
140140
if (iimageview->first) {
@@ -146,45 +146,46 @@ iimageview_refresh(vObject *vobject)
146146

147147
iimageview_compute_visibility(iimageview);
148148

149-
if (iimageview->enable) {
150-
if (!iimage->value.ii)
151-
g_object_set(iimageview->imagedisplay,
152-
"tilesource", NULL,
153-
NULL);
154-
else {
155-
g_object_get(iimageview->imagedisplay,
156-
"tilesource", &tilesource,
157-
NULL);
158-
159-
if (!tilesource ||
160-
(tilesource->image != iimage->value.ii->image)) {
161-
Tilesource *new_tilesource =
162-
tilesource_new_from_iimage(iimage, -1000);
149+
if (!iimageview->enable ||
150+
!iimage->value.ii)
151+
g_object_set(iimageview->imagedisplay,
152+
"tilesource", NULL,
153+
NULL);
154+
else if (iimageview->enable) {
155+
g_object_get(iimageview->imagedisplay,
156+
"tilesource", &tilesource,
157+
NULL);
163158

164-
g_object_set(iimageview->imagedisplay,
165-
"bestfit", TRUE,
166-
"tilesource", new_tilesource,
167-
NULL);
159+
if (!tilesource ||
160+
(tilesource->image != iimage->value.ii->image)) {
161+
Tilesource *new_tilesource =
162+
tilesource_new_from_iimage(iimage, -1000);
168163

169-
// set the image loading, if necessary
170-
tilesource_background_load(new_tilesource);
164+
g_object_set(iimageview->imagedisplay,
165+
"bestfit", TRUE,
166+
"tilesource", new_tilesource,
167+
NULL);
171168

172-
VIPS_UNREF(new_tilesource);
173-
}
169+
// set the image loading, if necessary
170+
tilesource_background_load(new_tilesource);
174171

175-
VIPS_UNREF(tilesource);
172+
VIPS_UNREF(new_tilesource);
176173
}
174+
175+
VIPS_UNREF(tilesource);
177176
}
178177

179178
g_object_get(iimageview->imagedisplay,
180179
"tilesource", &tilesource,
181180
NULL);
182-
if (tilesource)
181+
if (tilesource) {
183182
g_object_set(tilesource,
184183
"scale", iimage->scale,
185184
"offset", iimage->offset,
186185
"falsecolour", iimage->falsecolour,
187186
NULL);
187+
VIPS_UNREF(tilesource);
188+
}
188189

189190
if (iimageview->label)
190191
set_glabel(iimageview->label, "%s", IOBJECT(iimage)->caption);

0 commit comments

Comments
 (0)