~ubuntu-branches/ubuntu/raring/software-center/raring-proposed

« back to all changes in this revision

Viewing changes to softwarecenter/ui/gtk3/widgets/thumbnail.py

  • Committer: Package Import Robot
  • Author(s): Michael Vogt
  • Date: 2012-10-11 15:33:05 UTC
  • mfrom: (195.1.18 quantal)
  • Revision ID: package-import@ubuntu.com-20121011153305-fm5ln7if3rpzts4n
Tags: 5.4.1.1
* lp:~mvo/software-center/reinstall-previous-purchase-token-fix:
  - fix reinstall previous purchases that have a system-wide
    license key LP: #1065481
* lp:~mvo/software-center/lp1060106:
  - Add missing gettext init for utils/update-software-center-agent
    (LP: #1060106)

Show diffs side-by-side

added added

removed removed

Lines of Context:
162
162
        self.loader.disconnect_by_func(
163
163
            self._on_screenshot_download_complete)
164
164
        self.loader.disconnect_by_func(
 
165
            self._on_screenshot_query_complete)
 
166
        self.loader.disconnect_by_func(
165
167
            self._on_screenshot_load_error)
166
168
 
167
169
    # overrides
168
170
    def do_get_preferred_width(self):
169
171
        if self.data.get_n_screenshots() <= 1:
170
 
            pb = self.button.image.get_pixbuf()
 
172
            pb = self.main_screenshot.image.get_pixbuf()
171
173
            if pb:
172
174
                width = pb.get_width() + 20
173
175
                return width, width
174
176
        return 320, 320
175
177
 
176
178
    def do_get_preferred_height(self):
177
 
        pb = self.button.image.get_pixbuf()
 
179
        pb = self.main_screenshot.image.get_pixbuf()
178
180
        if pb:
179
181
            height = pb.get_height()
180
182
            if self.data.get_n_screenshots() <= 1:
194
196
    def _build_ui(self):
195
197
        self.set_border_width(3)
196
198
        # the frame around the screenshot (placeholder)
197
 
        self.screenshot = Gtk.VBox()
198
 
        self.pack_start(self.screenshot, True, True, 0)
 
199
        self.screenshot_frame = Gtk.VBox()
 
200
        self.pack_start(self.screenshot_frame, True, True, 0)
199
201
 
200
202
        self.spinner = Gtk.Spinner()
201
203
        self.spinner.set_size_request(*self.SPINNER_SIZE)
202
204
        self.spinner.set_valign(Gtk.Align.CENTER)
203
205
        self.spinner.set_halign(Gtk.Align.CENTER)
204
 
        self.screenshot.add(self.spinner)
 
206
        self.screenshot_frame.add(self.spinner)
205
207
 
206
 
        # clickable screenshot button
207
 
        self.button = ScreenshotButton()
208
 
        self.screenshot.pack_start(self.button, True, False, 0)
 
208
        # main big clickable screenshot button
 
209
        self.main_screenshot = ScreenshotButton()
 
210
        self.screenshot_frame.pack_start(self.main_screenshot, True, False, 0)
209
211
 
210
212
        # unavailable layout
211
213
        self.unavailable = Gtk.Label(label=_(self.NOT_AVAILABLE_STRING))
213
215
        # force the label state to INSENSITIVE so we get the nice
214
216
        # subtle etched in look
215
217
        self.unavailable.set_state(Gtk.StateType.INSENSITIVE)
216
 
        self.screenshot.add(self.unavailable)
 
218
        self.screenshot_frame.add(self.unavailable)
217
219
 
218
220
        self.thumbnails = ThumbnailGallery(self)
219
221
        self.thumbnails.set_margin_top(5)
221
223
        self.pack_end(self.thumbnails, False, False, 0)
222
224
        self.thumbnails.connect(
223
225
            "thumb-selected", self.on_thumbnail_selected)
224
 
        self.button.connect("clicked", self.on_clicked)
225
 
        self.button.connect('enter-notify-event', self._on_enter)
226
 
        self.button.connect('leave-notify-event', self._on_leave)
 
226
        self.main_screenshot.connect("clicked", self.on_clicked)
 
227
        self.main_screenshot.connect('enter-notify-event', self._on_enter)
 
228
        self.main_screenshot.connect('leave-notify-event', self._on_leave)
227
229
        self.show_all()
228
230
 
229
231
    def _on_enter(self, widget, event):
261
263
        self.thumbnails.set_thumbnails_from_data(screenshots)
262
264
 
263
265
    def _on_screenshot_download_complete(self, loader, screenshot_path):
 
266
 
264
267
        try:
265
268
            self.screenshot_pixbuf = GdkPixbuf.Pixbuf.new_from_file(
266
269
                screenshot_path)
269
272
            self.loader.emit('error', GObject.GError, e)
270
273
            return False
271
274
 
272
 
        #context = self.button.get_style_context()
 
275
        #context = self.main_screenshot.get_style_context()
273
276
        tw, th = self.MAX_SIZE_CONSTRAINTS
274
277
        pb = self._downsize_pixbuf(self.screenshot_pixbuf, tw, th)
275
 
        self.button.image.set_from_pixbuf(pb)
 
278
        self.main_screenshot.image.set_from_pixbuf(pb)
276
279
        self.ready = True
277
280
        self.display_image()
278
281
 
311
314
        self.display_spinner()
312
315
 
313
316
    def display_spinner(self):
314
 
        self.button.image.clear()
315
 
        self.button.hide()
 
317
        self.main_screenshot.image.clear()
 
318
        self.main_screenshot.hide()
316
319
        self.unavailable.hide()
317
320
        self.spinner.show()
318
321
        self.spinner.start()
321
324
        self.spinner.hide()
322
325
        self.spinner.stop()
323
326
        self.unavailable.show()
324
 
        self.button.hide()
 
327
        self.main_screenshot.hide()
325
328
        acc = self.get_accessible()
326
329
        acc.set_name(_(self.NOT_AVAILABLE_STRING))
327
330
        acc.set_role(Atk.Role.LABEL)
330
333
        self.unavailable.hide()
331
334
        self.spinner.stop()
332
335
        self.spinner.hide()
333
 
        self.button.show_all()
 
336
        self.main_screenshot.show_all()
334
337
        self.thumbnails.show()
335
338
 
336
339
    def get_is_actionable(self):