~trb143/openlp/more_media

« back to all changes in this revision

Viewing changes to openlp/core/ui/themeform.py

  • Committer: Tim Bentley
  • Date: 2019-06-11 18:08:21 UTC
  • mfrom: (2876.1.2 openlp)
  • Revision ID: tim.bentley@gmail.com-20190611180821-m0viu2wi93p2o97k
Head

Show diffs side-by-side

added added

removed removed

Lines of Context:
172
172
        if not event:
173
173
            event = QtGui.QResizeEvent(self.size(), self.size())
174
174
        QtWidgets.QWizard.resizeEvent(self, event)
175
 
        if hasattr(self, 'preview_page') and self.currentPage() == self.preview_page:
176
 
            frame_width = self.preview_box_label.lineWidth()
177
 
            pixmap_width = self.preview_area.width() - 2 * frame_width
178
 
            pixmap_height = self.preview_area.height() - 2 * frame_width
179
 
            aspect_ratio = float(pixmap_width) / pixmap_height
180
 
            if aspect_ratio < self.display_aspect_ratio:
181
 
                pixmap_height = int(pixmap_width / self.display_aspect_ratio + 0.5)
182
 
            else:
183
 
                pixmap_width = int(pixmap_height * self.display_aspect_ratio + 0.5)
184
 
            self.preview_box_label.setFixedSize(pixmap_width + 2 * frame_width, pixmap_height + 2 * frame_width)
 
175
        try:
 
176
            self.display_aspect_ratio = self.renderer.width() / self.renderer.height()
 
177
        except ZeroDivisionError:
 
178
            self.display_aspect_ratio = 1
 
179
        # Make sure we don't resize before the widgets are actually created
 
180
        if hasattr(self, 'preview_area_layout'):
 
181
            self.preview_area_layout.set_aspect_ratio(self.display_aspect_ratio)
 
182
            self.preview_box.set_scale(float(self.preview_box.width()) / self.renderer.width())
185
183
 
186
184
    def validateCurrentPage(self):
187
185
        """
206
204
        self.setOption(QtWidgets.QWizard.HaveCustomButton1, enabled)
207
205
        if self.page(page_id) == self.preview_page:
208
206
            self.update_theme()
209
 
            frame = self.theme_manager.generate_image(self.theme)
210
 
            frame.setDevicePixelRatio(self.devicePixelRatio())
211
 
            self.preview_box_label.setPixmap(frame)
212
 
            self.display_aspect_ratio = float(frame.width()) / frame.height()
 
207
            self.preview_box.set_theme(self.theme)
 
208
            self.preview_box.clear_slides()
 
209
            self.preview_box.set_scale(float(self.preview_box.width()) / self.renderer.width())
 
210
            try:
 
211
                self.display_aspect_ratio = self.renderer.width() / self.renderer.height()
 
212
            except ZeroDivisionError:
 
213
                self.display_aspect_ratio = 1
 
214
            self.preview_area_layout.set_aspect_ratio(self.display_aspect_ratio)
213
215
            self.resizeEvent()
 
216
            self.preview_box.show()
 
217
            self.preview_box.generate_preview(self.theme, False, False)
214
218
 
215
219
    def on_custom_1_button_clicked(self, number):
216
220
        """
398
402
        Handle the display and state of the Preview page.
399
403
        """
400
404
        self.setField('name', self.theme.theme_name)
 
405
        self.preview_box.set_theme(self.theme)
401
406
 
402
407
    def on_background_combo_box_current_index_changed(self, index):
403
408
        """
558
563
            source_path = self.theme.background_filename
559
564
        if not self.edit_mode and not self.theme_manager.check_if_theme_exists(self.theme.theme_name):
560
565
            return
561
 
        self.theme_manager.save_theme(self.theme, source_path, destination_path)
 
566
        self.theme_manager.save_theme(self.theme, source_path, destination_path, self.preview_box.save_screenshot())
562
567
        return QtWidgets.QDialog.accept(self)