]> git.phdru.name Git - m_librarian.git/blob - m_librarian/wx/SearchPanel.py
8547c313152fc07f8253e7b0305464ab508db747
[m_librarian.git] / m_librarian / wx / SearchPanel.py
1 # coding: utf-8
2
3 import wx
4 from ..search import search_authors_raw
5 from .ListAuthors import ListAuthorsWindow
6
7
8 _search_types = ['start', 'substring', 'full']
9
10
11 class SearchPanel(wx.Panel):
12
13     def __init__(self, parent):
14         wx.Panel.__init__(self, parent)
15         search_authors_vsizer = \
16             wx.StaticBoxSizer(wx.VERTICAL, self, u'Поиск авторов')
17         self.SetSizer(search_authors_vsizer)
18
19         self.search_authors = search_authors = \
20             wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER)
21         search_authors_vsizer.Add(search_authors, 0, wx.EXPAND, 0)
22         search_authors.Bind(wx.EVT_TEXT_ENTER, self.SearchAuthors)
23
24         self.search_substr = search_substr = wx.RadioBox(
25             self,
26             choices=[
27                 u'Подстрока в начале',
28                 u'Подстрока',
29                 u'Точное совпадение',
30             ],
31             majorDimension=1, style=wx.RA_SPECIFY_ROWS
32         )
33         search_authors_vsizer.Add(search_substr)
34
35         self.search_case = search_case = wx.CheckBox(
36             self, label=u'Различать прописные/строчные')
37         search_authors_vsizer.Add(search_case)
38
39         search_authors_button = wx.Button(self, label=u'Искать авторов')
40         search_authors_vsizer.Add(search_authors_button, 0, wx.ALIGN_CENTER, 0)
41         search_authors_button.Bind(wx.EVT_BUTTON, self.SearchAuthors)
42
43     def SearchAuthors(self, event):
44         search_authors = self.search_authors.GetValue()
45         search_substr = _search_types[self.search_substr.GetSelection()]
46         search_case = self.search_case.GetValue()
47         if search_case is False:
48             search_case = None
49         search_authors_results = \
50             search_authors_raw(search_authors, search_substr, search_case)
51         ListAuthorsWindow(self.Parent, search_authors_results)