2 # -*- coding: utf-8 -*-
5 This file is part of Multilist.
7 Multilist is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
12 Multilist is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with Multilist. If not, see <http://www.gnu.org/licenses/>.
20 Copyright (C) 2008 Christoph Würstle
35 _moduleLogger = logging.getLogger(__name__)
38 class Bottombar(gtk.HBox):
41 'changed' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING, gobject.TYPE_STRING)),
42 #'changedCategory': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING, gobject.TYPE_STRING))
45 def new_item(self, widget = None, data1 = None, data2 = None):
46 dialog = gtk.Dialog(_("New item name:"), None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
47 dialog.set_position(gtk.WIN_POS_CENTER)
48 entryKlasse = gtk.Entry()
49 entryKlasse.set_text("")
51 dialog.vbox.pack_start(entryKlasse, True, True, 0)
53 dialog.vbox.show_all()
54 #dialog.set_size_request(400, 300)
56 if dialog.run() == gtk.RESPONSE_ACCEPT:
57 #_moduleLogger.info("new category name "+entryKlasse.get_text())
58 #self.view.liststorehandler.rename_category(entryKlasse.get_text())
59 self.view.liststorehandler.add_row(entryKlasse.get_text())
62 def del_item(self, widget = None, data1 = None, data2 = None):
63 path, col = self.view.treeview.get_cursor()
65 mbox = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, _("Delete current item?"))
69 if response == gtk.RESPONSE_YES:
70 self.view.del_active_row()
72 mbox = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, _("No item selected!"))
77 def checkout_items(self, widget = None, data1 = None, data2 = None):
78 #self.view.del_active_row()
79 mbox = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_YES_NO, (_("Really checkout all items?")))
83 if response == gtk.RESPONSE_YES:
84 self.view.liststorehandler.checkout_rows()
85 #n = len(self.view.liststorehandler.get_liststore())
87 # self.view.liststorehandler.checkout_rows()
90 def search_list(self, widget = None, data1 = None, data2 = None):
91 self.view.liststorehandler.get_liststore(widget.get_text())
93 def rename_category(self, widget = None, data1 = None, data2 = None):
94 dialog = gtk.Dialog(_("New category name:"), None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
96 dialog.set_position(gtk.WIN_POS_CENTER)
97 entryKlasse = gtk.Entry()
98 entryKlasse.set_text(self.view.liststorehandler.selection.get_category())
100 dialog.vbox.pack_start(entryKlasse, True, True, 0)
102 dialog.vbox.show_all()
103 #dialog.set_size_request(400, 300)
105 if dialog.run() == gtk.RESPONSE_ACCEPT:
106 _moduleLogger.info("new category name "+entryKlasse.get_text())
107 self.view.liststorehandler.rename_category(entryKlasse.get_text())
113 def rename_list(self, widget = None, data1 = None, data2 = None):
114 dialog = gtk.Dialog(_("New list name:"), None, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
116 dialog.set_position(gtk.WIN_POS_CENTER)
117 entryKlasse = gtk.Entry()
118 entryKlasse.set_text(self.view.liststorehandler.selection.get_list())
120 dialog.vbox.pack_start(entryKlasse, True, True, 0)
122 dialog.vbox.show_all()
123 #dialog.set_size_request(400, 300)
125 if dialog.run() == gtk.RESPONSE_ACCEPT:
126 _moduleLogger.info("new list name "+entryKlasse.get_text())
127 self.view.liststorehandler.rename_list(entryKlasse.get_text())
133 def __init__(self, db, view, isHildon):
134 gtk.HBox.__init__(self, homogeneous = False, spacing = 3)
137 self.isHildon = isHildon
140 _moduleLogger.info("libBottomBar, init")
142 button = gtk.Button(_("New item"))
143 button.connect("clicked", self.new_item)
144 self.pack_start(button, expand = False, fill = True, padding = 0)
146 label = gtk.Label(" ")
147 self.pack_start(label, expand = True, fill = True, padding = 0)
149 label = gtk.Label(_("Search:"))
150 self.pack_start(label, expand = False, fill = True, padding = 0)
151 searchEntry = gtk.Entry()
152 searchEntry.connect("changed", self.search_list)
153 self.pack_start(searchEntry, expand = True, fill = True, padding = 0)
155 label = gtk.Label(" ")
156 self.pack_start(label, expand = True, fill = True, padding = 0)
158 button = gtk.Button(_("Checkout all items"))
159 button.connect("clicked", self.checkout_items)
160 self.pack_start(button, expand = False, fill = True, padding = 0)
162 button = gtk.Button(_("Del item"))
163 button.connect("clicked", self.del_item)
164 self.pack_start(button, expand = False, fill = True, padding = 0)