
Public Member Functions | |
| def | __init__ |
| def | filter_changed |
| def | apply_filter |
| def | emit_album_count_changed |
| def | prepare_exporter |
| def | prepare_importer |
| def | do_export_ods |
| def | do_export_csv |
| def | do_import_csv |
| def | do_fetch_covers |
| def | setup_actions |
| def | setup_album_file |
| def | show_item |
| def | edit_item |
| def | save |
Public Attributes | |
| view | |
| model | |
| save_geometry | |
| count_albums | |
| viewport | |
| vboxlayout | |
| actions | |
| view_filter | |
| filter_timer | |
| album_file | |
| menu_export | |
| menu_import | |
| album_file_scroll | |
Private Member Functions | |
| def | __setup_filter_timer |
| def py::gui::page::page::__init__ | ( | self, | ||
| view, | ||||
show_filter = False | ||||
| ) |
00043 : 00044 QSplitter.__init__(self,Qt.Vertical) 00045 00046 self.view = view 00047 00048 # link attributes and methods 00049 self.model = view.model 00050 self.save_geometry = view.save_geometry 00051 self.count_albums = self.model.count_albums 00052 00053 # connect signals 00054 self.connect(self.view, SIGNAL("itemChanged"), self.show_item) 00055 self.connect(self.view, SIGNAL("itemEdit"), self.edit_item) 00056 self.connect(self.view, SIGNAL("album_count_changed"), self.emit_album_count_changed) 00057 00058 self.viewport = QWidget() 00059 self.vboxlayout = QVBoxLayout(self.viewport) 00060 self.vboxlayout.setMargin(0) 00061 self.vboxlayout.setSpacing(0) 00062 self.actions = gui.widget.actions() 00063 self.actions.make_flat = True 00064 self.vboxlayout.addWidget(self.actions) 00065 if show_filter : 00066 self.view_filter = quick_filter(view) 00067 self.connect(self.view_filter.filter, SIGNAL("textChanged(const QString&)"), self.filter_changed) 00068 self.filter_timer = None 00069 self.__setup_filter_timer() 00070 self.vboxlayout.addWidget(self.view_filter) 00071 self.vboxlayout.addWidget(self.view) 00072 self.addWidget(self.viewport) 00073 00074 self.album_file = None 00075 00076 self.setup_actions() 00077 def __setup_filter_timer( self ) :
| def py::gui::page::page::__setup_filter_timer | ( | self | ) | [private] |
00078 : 00079 if self.filter_timer : 00080 self.filter_timer.stop() 00081 del self.filter_timer 00082 self.filter_timer = QTimer() 00083 self.filter_timer.setSingleShot(True) 00084 self.filter_timer.start(500) 00085 QObject.connect(self.filter_timer, SIGNAL("timeout()"), self.apply_filter) 00086 def filter_changed( self, value ) :
| def py::gui::page::page::filter_changed | ( | self, | ||
| value | ||||
| ) |
| def py::gui::page::page::apply_filter | ( | self | ) |
| def py::gui::page::page::emit_album_count_changed | ( | self | ) |
| def py::gui::page::page::prepare_exporter | ( | self, | ||
| exporter | ||||
| ) |
| def py::gui::page::page::prepare_importer | ( | self, | ||
| importer | ||||
| ) |
| def py::gui::page::page::do_export_ods | ( | self | ) |
00109 : 00110 filename = str(QFileDialog.getSaveFileName(self, _("Export to OpenDocument spreadsheet"), QString(), 00111 _("OpenDocument Spreadsheet (*.ods)"))) 00112 if filename : 00113 if not filename.lower().endswith(".ods") : 00114 filename += ".ods" 00115 exporter = self.prepare_exporter(qo.exporter.opendocument_spreadsheet()) 00116 exporter.filename = filename 00117 00118 def worker() : 00119 exporter.run(self.model.queryset()) 00120 00121 if gui.dialog.progress_busy(self, _("Exporting to %s")%exporter.filename, worker).exec_() : 00122 QMessageBox.information(self, _("Successfull export"), _("Exportation to '%s' file succeed.")%exporter.filename) 00123 00124 @gui.dialog.show_failure def do_export_csv( self ) :
| def py::gui::page::page::do_export_csv | ( | self | ) |
| def py::gui::page::page::do_import_csv | ( | self | ) |
| def py::gui::page::page::do_fetch_covers | ( | self | ) |
00131 : 00132 def work( notifier ) : 00133 notifier.section_grow(1) 00134 notifier.step(_("Initializing...")) 00135 00136 if 'by-album' in self.model : 00137 def without_cover( albumid ) : 00138 return not os.path.exists(qocfg.get_cover_path(albumid+"#cover")) 00139 albums = filter(without_cover,self.model['by-album'].keys()) 00140 notifier.section_grow(len(albums)) 00141 00142 for album in albums : 00143 name = "%s#cover" % album 00144 notifier.step(_("Downloading cover '%s'") % name) 00145 try : 00146 qo.catalog.fetch_cover(name) 00147 except : 00148 traceback.print_exc() 00149 00150 notifier.section_end() 00151 00152 gui.dialog.step_notifier(self, _("Fetching covers..."), work).exec_() 00153 gui.models.manager.reload_covers() 00154 00155 def setup_actions( self ) :
| def py::gui::page::page::setup_actions | ( | self | ) |
Reimplemented in py::gui::page::page_series.
00156 : 00157 # covers 00158 action = self.actions.add(_("Fetch covers"), self.do_fetch_covers) 00159 action.setToolTip(_("Fetch all available covers")) 00160 # export 00161 self.menu_export = QMenu() 00162 self.menu_export.addAction(_("OpenDocument spreadsheet (ods)"), self.do_export_ods) 00163 self.menu_export.addAction(_("comma-separated values (csv)"), self.do_export_csv) 00164 self.actions.add(_("Export to")).setMenu(self.menu_export) 00165 # import 00166 self.menu_import = QMenu() 00167 self.menu_import.addAction(_("comma-separated values (csv)"), self.do_import_csv) 00168 self.actions.add(_("Import")).setMenu(self.menu_import) 00169 def setup_album_file( self ) :
| def py::gui::page::page::setup_album_file | ( | self | ) |
00170 : 00171 if self.album_file is None : 00172 self.album_file = gui.album.file() 00173 self.album_file_scroll = QScrollArea() 00174 self.album_file_scroll.setWidget(self.album_file) 00175 self.album_file_scroll.setWidgetResizable(True) 00176 self.addWidget(self.album_file_scroll) 00177 # initial sizes 00178 sizes = self.sizes() 00179 total = sizes[0] + sizes[1] 00180 sizes[1] = 300 00181 sizes[0] = total - sizes[1] 00182 self.setSizes( sizes ) 00183 # show it 00184 self.album_file.parentWidget().show() 00185 self.album_file.show() 00186 def show_item( self, item ) :
| def py::gui::page::page::show_item | ( | self, | ||
| item | ||||
| ) |
| def py::gui::page::page::edit_item | ( | self, | ||
| item | ||||
| ) |
| def py::gui::page::page::save | ( | self | ) |
1.5.3