]> git.phdru.name Git - m_librarian.git/blobdiff - m_librarian/wx/SearchPanel.py
Feat(wx/search): Search authors
[m_librarian.git] / m_librarian / wx / SearchPanel.py
index cde0fabf738dfcc36ea5ec10226f44b939f81c73..11633b3b7a29662229cc6a57ba2f8ea1c4b77aa0 100644 (file)
@@ -1,6 +1,9 @@
 # coding: utf-8
 
 import wx
+from ..search import search_authors_raw
+
+_search_types = ['start', 'substring', 'full']
 
 
 class SearchPanel(wx.Panel):
@@ -11,8 +14,10 @@ class SearchPanel(wx.Panel):
             wx.StaticBoxSizer(wx.VERTICAL, self, u'Поиск авторов')
         self.SetSizer(search_authors_vsizer)
 
-        self.search_authors = search_authors = wx.TextCtrl(self)
+        self.search_authors = search_authors = \
+            wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER)
         search_authors_vsizer.Add(search_authors, 0, wx.EXPAND, 0)
+        search_authors.Bind(wx.EVT_TEXT_ENTER, self.SearchAuthors)
 
         self.search_substr = search_substr = wx.RadioBox(
             self,
@@ -24,3 +29,20 @@ class SearchPanel(wx.Panel):
             majorDimension=1, style=wx.RA_SPECIFY_ROWS
         )
         search_authors_vsizer.Add(search_substr)
+
+        self.search_case = search_case = wx.CheckBox(
+            self, label=u'Различать прописные/строчные')
+        search_authors_vsizer.Add(search_case)
+
+        self.search_authors_button = search_authors_button = wx.Button(
+            self, label=u'Искать авторов')
+        search_authors_vsizer.Add(search_authors_button, 0, wx.ALIGN_CENTER, 0)
+        search_authors_button.Bind(wx.EVT_BUTTON, self.SearchAuthors)
+
+    def SearchAuthors(self, event):
+        search_authors = self.search_authors.GetValue()
+        search_substr = _search_types[self.search_substr.GetSelection()]
+        search_case = self.search_case.GetValue()
+        if search_case is False:
+            search_case = None
+        search_authors_raw(search_authors, search_substr, search_case)