import constants
import hildonize
+import gtk_toolbox
import libspeichern
+import search
import sqldialog
+import settings
import libselection
import libview
import libliststorehandler
self.vbox = gtk.VBox(homogeneous = False, spacing = 0)
self.selection = libselection.Selection(self.db, isHildon)
+ self._search = search.Search()
self.liststorehandler = libliststorehandler.Liststorehandler(self.db, self.selection)
self.view = libview.View(self.db, self.liststorehandler, self.window)
self.bottombar = libbottombar.Bottombar(self.db, self.view, isHildon)
#Menue
if hildonize.GTK_MENU_USED:
- dateimenu = gtk.Menu()
+ fileMenu = gtk.Menu()
menu_items = gtk.MenuItem(_("Choose database file"))
- dateimenu.append(menu_items)
menu_items.connect("activate", self.select_db_dialog, None)
+ fileMenu.append(menu_items)
menu_items = gtk.MenuItem(_("SQL history"))
- dateimenu.append(menu_items)
menu_items.connect("activate", self.view_sql_history, None)
+ fileMenu.append(menu_items)
menu_items = gtk.MenuItem(_("SQL optimize"))
- dateimenu.append(menu_items)
menu_items.connect("activate", self.optimizeSQL, None)
+ fileMenu.append(menu_items)
menu_items = gtk.MenuItem(_("Sync items"))
- dateimenu.append(menu_items)
menu_items.connect("activate", self.sync_notes, None)
+ fileMenu.append(menu_items)
menu_items = gtk.MenuItem(_("Quit"))
- dateimenu.append(menu_items)
menu_items.connect("activate", self.destroy, None)
- #menu_items.show()
+ fileMenu.append(menu_items)
- datei_menu = gtk.MenuItem(_("File"))
- datei_menu.show()
- datei_menu.set_submenu(dateimenu)
+ fileMenuItem = gtk.MenuItem(_("File"))
+ fileMenuItem.show()
+ fileMenuItem.set_submenu(fileMenu)
- toolsmenu = gtk.Menu()
+ categorymenu = gtk.Menu()
- menu_items = gtk.MenuItem(_("Choose columns"))
- toolsmenu.append(menu_items)
- menu_items.connect("activate", self.show_columns_dialog, None)
+ menu_items = gtk.MenuItem(_("Search"))
+ menu_items.connect("activate", self._on_toggle_search)
+ categorymenu.append(menu_items)
+
+ menu_items = gtk.MenuItem(_("Checkout All"))
+ menu_items.connect("activate", self._on_checkout_all)
+ categorymenu.append(menu_items)
menu_items = gtk.MenuItem(_("Rename Category"))
- toolsmenu.append(menu_items)
menu_items.connect("activate", self.bottombar.rename_category, None)
+ categorymenu.append(menu_items)
+
+ category_menu = gtk.MenuItem(_("Category"))
+ category_menu.show()
+ category_menu.set_submenu(categorymenu)
+
+ viewMenu = gtk.Menu()
+
+ menu_items = gtk.MenuItem(_("Show Active"))
+ menu_items.connect("activate", self._on_toggle_filter, None)
+ viewMenu.append(menu_items)
+
+ menu_items = gtk.MenuItem(_("Settings"))
+ menu_items.connect("activate", self._on_settings, None)
+ viewMenu.append(menu_items)
+
+ viewMenuItem = gtk.MenuItem(_("View"))
+ viewMenuItem.show()
+ viewMenuItem.set_submenu(viewMenu)
+
+ toolsMenu = gtk.Menu()
menu_items = gtk.MenuItem(_("Rename List"))
- toolsmenu.append(menu_items)
menu_items.connect("activate", self.bottombar.rename_list, None)
+ toolsMenu.append(menu_items)
- tools_menu = gtk.MenuItem(_("Tools"))
- tools_menu.show()
- tools_menu.set_submenu(toolsmenu)
+ toolsMenuItem = gtk.MenuItem(_("Tools"))
+ toolsMenuItem.show()
+ toolsMenuItem.set_submenu(toolsMenu)
- hilfemenu = gtk.Menu()
+ helpMenu = gtk.Menu()
menu_items = gtk.MenuItem(_("About"))
- hilfemenu.append(menu_items)
+ helpMenu.append(menu_items)
menu_items.connect("activate", self.show_about, None)
- hilfe_menu = gtk.MenuItem(_("Help"))
- hilfe_menu.show()
- hilfe_menu.set_submenu(hilfemenu)
+ helpMenuItem = gtk.MenuItem(_("Help"))
+ helpMenuItem.show()
+ helpMenuItem.set_submenu(helpMenu)
menu_bar = gtk.MenuBar()
menu_bar.show()
- menu_bar.append (datei_menu)
- menu_bar.append (tools_menu)
- # unten -> damit als letztes menu_bar.append (hilfe_menu)
+ menu_bar.append (fileMenuItem)
+ menu_bar.append (toolsMenuItem)
+ menu_bar.append (category_menu)
+ menu_bar.append (viewMenuItem)
+ # unten -> damit als letztes menu_bar.append (helpMenuItem)
#Als letztes menĂ¼
- menu_bar.append (hilfe_menu)
+ menu_bar.append (helpMenuItem)
self.vbox.pack_start(menu_bar, False, False, 0)
else:
self.vbox.pack_start(menuBar, False, False, 0)
#add to vbox below (to get it on top)
+ self.vbox.pack_end(self._search, expand = False, fill = True)
self.vbox.pack_end(self.bottombar, expand = False, fill = True, padding = 0)
self.vbox.pack_end(self.view, expand = True, fill = True, padding = 0)
self.vbox.pack_end(self.selection, expand = False, fill = True, padding = 0)
menu_bar,
)
if hildonize.IS_FREMANTLE_SUPPORTED:
- pass
+ button = hildonize.hildon.GtkRadioButton(gtk.HILDON_SIZE_AUTO, None)
+ button.set_label("All")
+ menuBar.add_filter(button)
+ button.connect("clicked", self._on_click_menu_filter, self.liststorehandler.SHOW_ALL)
+ button.set_mode(False)
+ filterGroup = button
+
+ button = hildonize.hildon.GtkRadioButton(gtk.HILDON_SIZE_AUTO, filterGroup)
+ button.set_label("Active")
+ menuBar.add_filter(button)
+ button.connect("clicked", self._on_click_menu_filter, self.liststorehandler.SHOW_ACTIVE)
+ button.set_mode(False)
+
+ renameCategoryButton = gtk.Button(_("Rename Category"))
+ renameCategoryButton.connect("clicked", self.bottombar.rename_category)
+ menuBar.append(renameCategoryButton)
+
+ renameListButton= gtk.Button(_("Rename List"))
+ renameListButton.connect("clicked", self.bottombar.rename_list)
+ menuBar.append(renameListButton)
+
+ searchButton= gtk.Button(_("Search Category"))
+ searchButton.connect("clicked", self._on_toggle_search)
+ menuBar.append(searchButton)
+
+ searchButton= gtk.Button(_("Settings"))
+ searchButton.connect("clicked", self._on_settings)
+ menuBar.append(searchButton)
+
+ menuBar.show_all()
if not hildonize.IS_HILDON_SUPPORTED:
_moduleLogger.info("No hildonization support")
self.window.connect("destroy", self.destroy)
self.window.connect("key-press-event", self.on_key_press)
self.window.connect("window-state-event", self.on_window_state_change)
+ self._search.connect("search_changed", self._on_search)
self.window.show_all()
+ self._search.hide()
self.prepare_sync_dialog()
self.ladeAlles()
+ @gtk_toolbox.log_exception(_moduleLogger)
+ def _on_checkout_all(self, widget):
+ self.liststorehandler.checkout_rows()
+
+ @gtk_toolbox.log_exception(_moduleLogger)
+ def _on_search(self, widget):
+ self.liststorehandler.get_liststore(self._search.get_search_pattern())
+
+ @gtk_toolbox.log_exception(_moduleLogger)
+ def _on_click_menu_filter(self, button, val):
+ self.liststorehandler.set_filter(val)
+
+ def _toggle_search(self):
+ if self._search.get_property("visible"):
+ self._search.hide()
+ else:
+ self._search.show()
+
+ @gtk_toolbox.log_exception(_moduleLogger)
+ def _on_toggle_search(self, *args):
+ self._toggle_search()
+
+ @gtk_toolbox.log_exception(_moduleLogger)
+ def _on_toggle_filter(self, *args):
+ if self.liststorehandler.get_filter() == self.liststorehandler.SHOW_ALL:
+ self.liststorehandler.set_filter(self.liststorehandler.SHOW_ACTIVE)
+ elif self.liststorehandler.get_filter() == self.liststorehandler.SHOW_ACTIVE:
+ self.liststorehandler.set_filter(self.liststorehandler.SHOW_ALL)
+ else:
+ assert False, "Unknown"
+
+ @gtk_toolbox.log_exception(_moduleLogger)
def on_key_press(self, widget, event, *args):
RETURN_TYPES = (gtk.keysyms.Return, gtk.keysyms.ISO_Enter, gtk.keysyms.KP_Enter)
isCtrl = bool(event.get_state() & gtk.gdk.CONTROL_MASK)
else:
self.window.fullscreen ()
return True
- #elif event.keyval == gtk.keysyms.f and isCtrl:
- # self._toggle_search()
- # return True
+ elif event.keyval == gtk.keysyms.f and isCtrl:
+ self._toggle_search()
+ return True
elif (
event.keyval in (gtk.keysyms.w, gtk.keysyms.q) and
event.get_state() & gtk.gdk.CONTROL_MASK
self._clipboard.set_text(str(log))
return True
+ @gtk_toolbox.log_exception(_moduleLogger)
def on_window_state_change(self, widget, event, *args):
if event.new_window_state & gtk.gdk.WINDOW_STATE_FULLSCREEN:
self.window_in_fullscreen = True
def beforeSync(self, data = None, data2 = None):
logging.info("Lade alles")
+ @gtk_toolbox.log_exception(_moduleLogger)
def sync_finished(self, data = None, data2 = None):
self.selection.comboList_changed()
self.selection.comboCategory_changed()
self.sync_dialog.vbox.pack_start(sync, True, True, 0)
self.sync_dialog.set_size_request(500, 350)
self.sync_dialog.vbox.show_all()
- sync.connect("syncFinished", self.sync_finished)
+ @gtk_toolbox.log_exception(_moduleLogger)
def sync_notes(self, widget = None, data = None):
if self.sync_dialog == None:
self.prepare_sync_dialog()
self.sync_dialog.run()
self.sync_dialog.hide()
- def show_columns_dialog(self, widget = None, data = None):
- col_dialog = gtk.Dialog(_("Choose columns"), self.window, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
-
- col_dialog.set_position(gtk.WIN_POS_CENTER)
- cols = libview.Columns_dialog(self.db, self.liststorehandler)
+ @gtk_toolbox.log_exception(_moduleLogger)
+ def _on_settings(self, *args):
+ col_dialog = gtk.Dialog(
+ _("Settings"),
+ self.window,
+ gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
+ (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)
+ )
- col_dialog.vbox.pack_start(cols, True, True, 0)
- col_dialog.set_size_request(500, 350)
- col_dialog.vbox.show_all()
+ cols = settings.SettingsDialog(col_dialog.vbox, self.db, self.liststorehandler)
+ col_dialog.show_all()
resp = col_dialog.run()
- col_dialog.hide()
- if resp == gtk.RESPONSE_ACCEPT:
- logging.info("changing columns")
- cols.save_column_setting()
- self.view.reload_view()
- #children = self.vbox.get_children()
- #while len(children)>1:
- # self.vbox.remove(children[1])
-
- #self.vbox.pack_end(self.bottombar, expand = True, fill = True, padding = 0)
- #self.vbox.pack_end(view, expand = True, fill = True, padding = 0)
- #self.vbox.pack_end(self.selection, expand = False, fill = True, padding = 0)
-
- col_dialog.destroy()
+ try:
+ col_dialog.hide()
+ if resp == gtk.RESPONSE_ACCEPT:
+ logging.info("changing columns")
+ cols.save(self.db)
+ self.view.reload_view()
+ finally:
+ col_dialog.destroy()
+ @gtk_toolbox.log_exception(_moduleLogger)
def destroy(self, widget = None, data = None):
try:
self.speichereAlles()
finally:
gtk.main_quit()
+ @gtk_toolbox.log_exception(_moduleLogger)
def delete_event(self, widget, event, data = None):
#print "delete event occurred"
return False
def dlg_delete(self, widget, event, data = None):
return False
+ @gtk_toolbox.log_exception(_moduleLogger)
def show_about(self, widget = None, data = None):
dialog = gtk.AboutDialog()
dialog.set_position(gtk.WIN_POS_CENTER)
def on_info1_activate(self, menuitem):
self.show_about(menuitem)
+ @gtk_toolbox.log_exception(_moduleLogger)
def view_sql_history(self, widget = None, data = None, data2 = None):
sqldiag = sqldialog.SqlDialog(self.db)
res = sqldiag.run()
finally:
sqldiag.destroy()
+ @gtk_toolbox.log_exception(_moduleLogger)
def optimizeSQL(self, widget = None, data = None, data2 = None):
#optimiere sql
self.db.speichereSQL("VACUUM", log = False)
+ @gtk_toolbox.log_exception(_moduleLogger)
def select_db_dialog(self, widget = None, data = None, data2 = None):
if (isHildon == False):
dlg = gtk.FileChooserDialog(parent = self.window, action = gtk.FILE_CHOOSER_ACTION_SAVE)