_moduleLogger = logging.getLogger(__name__)
-class Columns_dialog(gtk.VBox):
-
- def __init__(self, db, liststorehandler):
- gtk.VBox.__init__(self, homogeneous = False, spacing = 0)
-
- self.db = db
- self.liststorehandler = liststorehandler
-
- #serverbutton = gtk.ToggleButton("SyncServer starten")
- #serverbutton.connect("clicked", self.startServer, (None, ))
- #self.pack_start(serverbutton, expand = False, fill = True, padding = 1)
- #print "x1"
-
- frame = gtk.Frame(_("Columns"))
- self.framebox = gtk.VBox(homogeneous = False, spacing = 0)
-
- self.scrolled_window = gtk.ScrolledWindow()
- self.scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
-
- self.scrolled_window.add_with_viewport(self.framebox)
-
- i = 1 #uid can not be shown
- while self.liststorehandler.get_colname(i) is not None:
- name = str(self.liststorehandler.get_colname(i))
- checkbutton = gtk.CheckButton(name)
- if self.db.ladeDirekt("showcol_"+name) == "1":
- checkbutton.set_active(True)
-
- self.framebox.pack_start(checkbutton)
- i = i+1
-
- frame.add(self.scrolled_window)
- self.pack_start(frame, expand = True, fill = True, padding = 1)
-
- def is_col_selected(self, icol):
- children = self.framebox.get_children()
- if icol < len(children):
- return children[icol].get_active()
- else:
- return None
-
- def save_column_setting(self):
- i = 1 #uid can not be shown
- while self.liststorehandler.get_colname(i) is not None:
- name = str(self.liststorehandler.get_colname(i))
- if self.is_col_selected(i-1) == True:
- self.db.speichereDirekt("showcol_"+name, "1")
- else:
- self.db.speichereDirekt("showcol_"+name, "0")
- i += 1
-
-
class CellRendererTriple(gtk.GenericCellRenderer):
__gproperties__ = {
"status": (gobject.TYPE_STRING, "Status",
m = self.liststorehandler.get_unitsstore()
for i in range(self.liststorehandler.get_colcount()):
- if 5 < i:
- default = "0"
- else:
+ if i in [1, 2]:
default = "1"
+ else:
+ default = "0"
if self.db.ladeDirekt("showcol_"+str(self.liststorehandler.get_colname(i)), default) == "1":
- if (i == 1):
+ if i in [1]:
self.cell[i] = CellRendererTriple()
- self.tvcolumn[i] = gtk.TreeViewColumn("", self.cell[i])
+ self.tvcolumn[i] = gtk.TreeViewColumn("", self.cell[i])
self.cell[i].connect( 'status_changed', self.col_toggled)
self.tvcolumn[i].set_attributes( self.cell[i], status = i)
- elif (i == 3)or(i == 4)or(i == 6):
+ elif i in [3, 6]:
self.cell[i] = gtk.CellRendererCombo()
- self.tvcolumn[i] = gtk.TreeViewColumn(self.liststorehandler.get_colname(i), self.cell[i])
+ self.tvcolumn[i] = gtk.TreeViewColumn(self.liststorehandler.get_colname(i), self.cell[i])
self.cell[i].set_property("model", m)
self.cell[i].set_property('text-column', i)
self.cell[i].set_property('editable', True)
- self.cell[i].connect("edited", self.col_edited, i)
+ self.cell[i].connect("edited", self.col_edited, i)
self.tvcolumn[i].set_attributes( self.cell[i], text = i)
else:
self.cell[i] = gtk.CellRendererText()
self.cell[i].set_property('cell-background', 'lightgray')
self.tvcolumn[i].set_sort_column_id(i)
self.tvcolumn[i].set_resizable(True)
+ self.treeview.append_column(self.tvcolumn[i])
- if (i>0):
- self.treeview.append_column(self.tvcolumn[i])
-
- # Allow NOT drag and drop reordering of rows
+ # Disable drag and drop reordering of rows
self.treeview.set_reorderable(False)
if self.scrolled_window is not None:
import libspeichern
import search
import sqldialog
+import settings
import libselection
import libview
import libliststorehandler
categorymenu = gtk.Menu()
menu_items = gtk.MenuItem(_("Search"))
- categorymenu.append(menu_items)
menu_items.connect("activate", self._on_toggle_search)
+ categorymenu.append(menu_items)
menu_items = gtk.MenuItem(_("Checkout All"))
- categorymenu.append(menu_items)
menu_items.connect("activate", self._on_checkout_all)
+ categorymenu.append(menu_items)
+
+ menu_items = gtk.MenuItem(_("Rename Category"))
+ menu_items.connect("activate", self.bottombar.rename_category, None)
+ categorymenu.append(menu_items)
category_menu = gtk.MenuItem(_("Category"))
category_menu.show()
menu_items.connect("activate", self._on_toggle_filter, None)
viewMenu.append(menu_items)
+ menu_items = gtk.MenuItem(_("Choose columns"))
+ menu_items.connect("activate", self.show_columns_dialog, None)
+ viewMenu.append(menu_items)
+
viewMenuItem = gtk.MenuItem(_("View"))
viewMenuItem.show()
viewMenuItem.set_submenu(viewMenu)
toolsMenu = gtk.Menu()
- menu_items = gtk.MenuItem(_("Choose columns"))
- menu_items.connect("activate", self.show_columns_dialog, None)
- toolsMenu.append(menu_items)
-
- menu_items = gtk.MenuItem(_("Rename Category"))
- menu_items.connect("activate", self.bottombar.rename_category, None)
- toolsMenu.append(menu_items)
-
menu_items = gtk.MenuItem(_("Rename List"))
menu_items.connect("activate", self.bottombar.rename_list, None)
toolsMenu.append(menu_items)
@gtk_toolbox.log_exception(_moduleLogger)
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)
+ 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()
+ cols.save(self.db)
self.view.reload_view()
#children = self.vbox.get_children()
#while len(children)>1:
--- /dev/null
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""
+This file is part of Multilist.
+
+Multilist is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+Multilist is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Multilist. If not, see <http://www.gnu.org/licenses/>.
+
+Copyright (C) 2008 Christoph Würstle
+"""
+
+import logging
+
+import gtk
+
+import hildonize
+
+
+try:
+ _
+except NameError:
+ _ = lambda x: x
+
+
+_moduleLogger = logging.getLogger(__name__)
+
+
+class SettingsDialog(object):
+
+ def __init__(self, parent, db, liststorehandler):
+ self.__listStore = liststorehandler
+
+ self.__columnsSection = gtk.VBox()
+ for i, name in enumerate(self._iter_columns()):
+ checkbutton = gtk.CheckButton(name)
+
+ if i in [0, 1]:
+ default = "1"
+ else:
+ default = "0"
+ if db.ladeDirekt("showcol_"+name, default) == "1":
+ checkbutton.set_active(True)
+
+ self.__columnsSection.pack_start(checkbutton)
+
+ columnsFrame = gtk.Frame(_("Choose Columns"))
+ columnsFrame.add(self.__columnsSection)
+
+ settingsBox = gtk.VBox()
+ settingsBox.pack_start(columnsFrame)
+ settingsView = gtk.Viewport()
+ settingsView.add(settingsBox)
+ settingsScrollView = gtk.ScrolledWindow()
+ settingsScrollView.add(settingsView)
+ settingsScrollView.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+ parent.pack_start(settingsScrollView)
+
+ settingsScrollView = hildonize.hildonize_scrollwindow(settingsScrollView)
+
+ def is_col_selected(self, icol):
+ children = self.__columnsSection.get_children()
+ if icol < len(children):
+ return children[icol].get_active()
+ else:
+ return None
+
+ def save(self, db):
+ for i, name in enumerate(self._iter_columns()):
+ if self.is_col_selected(i) == True:
+ db.speichereDirekt("showcol_"+name, "1")
+ else:
+ db.speichereDirekt("showcol_"+name, "0")
+
+ def _iter_columns(self):
+ for i in xrange(self.__listStore.get_colcount()):
+ name = self.__listStore.get_colname(i)
+ assert name is not None
+ if name == "uid":
+ continue
+
+ yield name