Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/GetIABooksActivity.py
diff options
context:
space:
mode:
authorGonzalo Odiard <godiard@sugarlabs.org>2011-03-26 19:52:06 (GMT)
committer Gonzalo Odiard <godiard@sugarlabs.org>2011-03-26 19:52:06 (GMT)
commit201ad14122e5edfe13f32df0de5b295d92b7736e (patch)
tree4d39c2f35cf5218f7e2c1268dcea0d70116dde13 /GetIABooksActivity.py
parent5bcdbbc189ef05ae7dc258f3174a6c79c2999fa0 (diff)
Add support to filter searches by language
Diffstat (limited to 'GetIABooksActivity.py')
-rwxr-xr-xGetIABooksActivity.py42
1 files changed, 39 insertions, 3 deletions
diff --git a/GetIABooksActivity.py b/GetIABooksActivity.py
index 93f7379..5518adb 100755
--- a/GetIABooksActivity.py
+++ b/GetIABooksActivity.py
@@ -87,10 +87,13 @@ class GetIABooksActivity(activity.Activity):
self.queryresults = None
self._getter = None
self.show_images = True
+ self.languages = {}
+ self._lang_code_handler = languagenames.LanguageNames()
- self._read_configuration()
if os.path.exists('/etc/get-books.cfg'):
self._read_configuration('/etc/get-books.cfg')
+ else:
+ self._read_configuration()
if OLD_TOOLBAR:
@@ -132,6 +135,14 @@ class GetIABooksActivity(activity.Activity):
config.readfp(open(file_name))
if config.has_option('GetBooks', 'show_images'):
self.show_images = config.getboolean('GetBooks', 'show_images')
+ self.languages = {}
+ if config.has_option('GetBooks', 'languages'):
+ languages_param = config.get('GetBooks', 'languages')
+ for language in languages_param.split(','):
+ lang_code = language.strip()
+ if len(lang_code) > 0:
+ self.languages[lang_code] = \
+ self._lang_code_handler.get_full_language_name(lang_code)
for section in config.sections():
if section != 'GetBooks':
@@ -143,6 +154,7 @@ class GetIABooksActivity(activity.Activity):
_SOURCES_CONFIG[section] = repo_config
logging.error('_SOURCES %s', _SOURCES)
logging.error('_SOURCES_CONFIG %s', _SOURCES_CONFIG)
+ logging.error('languages %s', self.languages)
def _add_search_controls(self, toolbar):
book_search_item = gtk.ToolItem()
@@ -167,6 +179,20 @@ class GetIABooksActivity(activity.Activity):
toolbar.insert(combotool, -1)
combotool.show()
+ if len(self.languages) > 0:
+ toolbar.language_combo = ComboBox()
+ toolbar.language_combo.props.sensitive = True
+ toolbar.language_changed_cb_id = \
+ toolbar.language_combo.connect('changed',
+ self.__language_changed_cb)
+ combotool = ToolComboBox(toolbar.language_combo)
+ toolbar.language_combo.append_item('all',_('Any language'))
+ for key in self.languages.keys():
+ toolbar.language_combo.append_item(key, self.languages[key])
+ toolbar.language_combo.set_active(0)
+ toolbar.insert(combotool, -1)
+ combotool.show()
+
self._device_manager = devicemanager.DeviceManager()
self._refresh_sources(toolbar)
self._device_manager.connect('device-added', self.__device_added_cb)
@@ -227,6 +253,13 @@ class GetIABooksActivity(activity.Activity):
def __format_changed_cb(self, combo):
self.show_book_data()
+ def __language_changed_cb(self, combo):
+ search_terms = self.get_search_terms()
+ if search_terms == '':
+ self.find_books(None)
+ else:
+ self.find_books(search_terms)
+
def __search_entry_activate_cb(self, entry):
self.find_books(entry.props.text)
@@ -254,7 +287,6 @@ class GetIABooksActivity(activity.Activity):
self.msg_label = gtk.Label()
- self._lang_code_handler = languagenames.LanguageNames()
self.listview = ListView(self._lang_code_handler)
self.listview.connect('selection-changed', self.selection_cb)
@@ -448,6 +480,10 @@ class GetIABooksActivity(activity.Activity):
def find_books(self, search_text=''):
source = self._books_toolbar.source_combo.props.value
+ query_language = None
+ if len(self.languages) > 0:
+ query_language = self._books_toolbar.language_combo.props.value
+
self.enable_button(False)
self.clear_downloaded_bytes()
self.book_selected = False
@@ -468,7 +504,7 @@ class GetIABooksActivity(activity.Activity):
if source in _SOURCES_CONFIG:
repo_configuration = _SOURCES_CONFIG[source]
self.queryresults = opds.RemoteQueryResult(repo_configuration,
- search_text, self.window)
+ search_text, query_language, self.window)
else:
self.queryresults = opds.LocalVolumeQueryResult( \
source, search_text, self.window)