X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=m_librarian%2Fwx%2FListBooks.py;h=0ef918e7f3b2610d10fe1ab8dcc4f2953613aabc;hb=bd8fec4b316b2bfedb36fa2d159c1fb1ca432376;hp=4252c2a45df0697750faf1183b94852e9ddd4415;hpb=7c53383385f4f6d40ddf5ecc3aad280a5cdb63cf;p=m_librarian.git diff --git a/m_librarian/wx/ListBooks.py b/m_librarian/wx/ListBooks.py index 4252c2a..0ef918e 100644 --- a/m_librarian/wx/ListBooks.py +++ b/m_librarian/wx/ListBooks.py @@ -108,6 +108,7 @@ class ListBooksPanel(GridPanel): row = 1 self.book_by_row = book_by_row = {} # map {row: book} self.toggle_rows = toggle_rows = {} # map {row: [list of subrows]} + autowrap_renderer = wx.grid.GridCellAutoWrapStringRenderer() for author in sorted(books_by_author): grid.SetCellAlignment(row, 1, wx.ALIGN_LEFT, wx. ALIGN_CENTRE) grid.SetCellSize(row, 1, 1, len(columns)-1) @@ -134,6 +135,12 @@ class ListBooksPanel(GridPanel): row += 1 series = book.series for col, col_name in enumerate(columns[1:]): + if col_name in ( + 'author1', 'author_list', 'authors', + 'genre1name', 'genre1title', 'genre_name_list', + 'genres', 'title', + ): + grid.SetCellRenderer(row, col+1, autowrap_renderer) value = getattr(book, col_name) if value is None: value = u'' @@ -181,7 +188,7 @@ class ListBooksPanel(GridPanel): else: event.Skip() - def Download(self, event): + def Download(self, event=None): book_by_row = self.book_by_row found_books = False try: @@ -193,13 +200,20 @@ class ListBooksPanel(GridPanel): except Exception as e: self.report_error(str(e)) else: - if not found_books: + if found_books: + self.report_success(u'Книги сохранены.') + else: self.report_error(u'Не выбрано книг для сохранения.') + def report_success(self, message): + wx.MessageBox( + message, caption='m_Librarian download finished', + style=wx.OK, parent=self.Parent) + def report_error(self, error): wx.MessageBox( error, caption='m_Librarian download error', - style=wx.OK|wx.ICON_ERROR, parent=self.Parent) + style=wx.OK | wx.ICON_ERROR, parent=self.Parent) class ListBooksWindow(GridWindow): @@ -207,3 +221,15 @@ class ListBooksWindow(GridWindow): session_config_section_name = 'list_books' window_title = u"m_Librarian: Список книг" GridPanelClass = ListBooksPanel + + def InitMenu(self): + GridWindow.InitMenu(self) + + download_menu = wx.Menu() + download = download_menu.Append(wx.ID_SAVE, + u"&Скачать", u"Скачать") + self.Bind(wx.EVT_MENU, self.OnDownload, download) + self.GetMenuBar().Append(download_menu, u"&Скачать") + + def OnDownload(self, event): + self.panel.Download()