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
30 class Bottombar(gtk.HBox):
33 'changed' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,(gobject.TYPE_STRING,gobject.TYPE_STRING)),
34 #'changedCategory': (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,(gobject.TYPE_STRING,gobject.TYPE_STRING))
38 def new_item(self,widget=None,data1=None,data2=None):
39 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))
41 dialog.set_position(gtk.WIN_POS_CENTER)
42 entryKlasse=gtk.Entry()
43 entryKlasse.set_text("")
45 dialog.vbox.pack_start(entryKlasse, True, True, 0)
47 dialog.vbox.show_all()
48 #dialog.set_size_request(400,300)
50 if dialog.run() == gtk.RESPONSE_ACCEPT:
51 #logging.info("new category name "+entryKlasse.get_text())
52 #self.view.liststorehandler.rename_category(entryKlasse.get_text())
53 self.view.liststorehandler.add_row(entryKlasse.get_text())
57 def del_item(self,widget=None,data1=None,data2=None):
58 path, col = self.view.treeview.get_cursor()
60 mbox=gtk.MessageDialog(None,gtk.DIALOG_MODAL,gtk.MESSAGE_QUESTION,gtk.BUTTONS_YES_NO,_("Delete current item?"))
64 if response==gtk.RESPONSE_YES:
65 self.view.del_active_row()
67 mbox=gtk.MessageDialog(None,gtk.DIALOG_MODAL,gtk.MESSAGE_ERROR,gtk.BUTTONS_OK,_("No item selected!"))
73 def checkout_items(self,widget=None,data1=None,data2=None):
74 #self.view.del_active_row()
75 mbox=gtk.MessageDialog(None,gtk.DIALOG_MODAL,gtk.MESSAGE_QUESTION,gtk.BUTTONS_YES_NO,(_("Really checkout all items?")))
79 if response==gtk.RESPONSE_YES:
80 self.view.liststorehandler.checkout_rows()
81 #n=len(self.view.liststorehandler.get_liststore())
83 # self.view.liststorehandler.checkout_rows()
86 def search_list(self,widget=None,data1=None,data2=None):
87 self.view.liststorehandler.get_liststore(widget.get_text())
90 def rename_category(self,widget=None,data1=None,data2=None):
91 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))
93 dialog.set_position(gtk.WIN_POS_CENTER)
94 entryKlasse=gtk.Entry()
95 entryKlasse.set_text(self.view.liststorehandler.selection.get_category())
97 dialog.vbox.pack_start(entryKlasse, True, True, 0)
99 dialog.vbox.show_all()
100 #dialog.set_size_request(400,300)
102 if dialog.run() == gtk.RESPONSE_ACCEPT:
103 logging.info("new category name "+entryKlasse.get_text())
104 self.view.liststorehandler.rename_category(entryKlasse.get_text())
111 def rename_list(self,widget=None,data1=None,data2=None):
112 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))
114 dialog.set_position(gtk.WIN_POS_CENTER)
115 entryKlasse=gtk.Entry()
116 entryKlasse.set_text(self.view.liststorehandler.selection.get_list())
118 dialog.vbox.pack_start(entryKlasse, True, True, 0)
120 dialog.vbox.show_all()
121 #dialog.set_size_request(400,300)
123 if dialog.run() == gtk.RESPONSE_ACCEPT:
124 logging.info("new list name "+entryKlasse.get_text())
125 self.view.liststorehandler.rename_list(entryKlasse.get_text())
131 def __init__(self,db,view,isHildon):
132 gtk.HBox.__init__(self,homogeneous=False, spacing=3)
135 self.isHildon=isHildon
138 logging.info("libBottomBar, init")
141 button=gtk.Button(_("New item"))
142 button.connect("clicked",self.new_item)
143 self.pack_start(button, expand=False, fill=True, padding=0)
146 self.pack_start(label, expand=True, fill=True, padding=0)
148 label=gtk.Label(_("Search:"))
149 self.pack_start(label, expand=False, fill=True, padding=0)
150 searchEntry=gtk.Entry()
151 searchEntry.connect("changed",self.search_list)
152 self.pack_start(searchEntry, expand=True, fill=True, padding=0)
155 self.pack_start(label, expand=True, fill=True, padding=0)
157 button=gtk.Button(_("Checkout all items"))
158 button.connect("clicked",self.checkout_items)
159 self.pack_start(button, expand=False, fill=True, padding=0)
161 button=gtk.Button(_("Del item"))
162 button.connect("clicked",self.del_item)
163 self.pack_start(button, expand=False, fill=True, padding=0)