Tagging the pre-epage code
[quicknote] / src / quicknoteclasses / libsqldialog.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3
4 """
5  *
6  *  Copyright (C) 2007 Christoph Würstle
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as
10  * published by the Free Software Foundation.
11  *
12  *
13 """
14
15 import gobject
16 import time
17 import string
18 import gtk
19 import sys
20 import logging
21
22 import libspeichern 
23  
24  
25 class sqlDialog(gtk.Dialog):
26         
27         def exportSQL(self,filename):
28                 f = open(filename, 'w')
29                 msgstring=""
30                 sql="SELECT pcdatum,sql,param FROM logtable WHERE pcdatum>? ORDER BY pcdatum DESC"
31                 rows=self.db.ladeSQL(sql,(time.time()-2*24*3600,))
32                 for row in rows:
33                         pcdatum,sql,param = row
34                         datum=str(time.strftime("%d.%m.%y %H:%M:%S ", (time.localtime(pcdatum))))
35                         f.write( datum +"\t" + sql + "\t\t" + param+ "\n")
36                         
37                         
38                 f.close()
39                 
40         
41         def __init__(self,db):
42                 self.db=db
43                 
44                 logging.info("sqldialog, init")
45                 
46                 gtk.Dialog.__init__(self,_("SQL History (the past two days):"),None,gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,(gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
47                 
48                 
49                 self.add_button("Export", 444)
50                 self.set_position(gtk.WIN_POS_CENTER)
51                 
52                 
53                 self.liststore = gtk.ListStore(str, str, str)
54
55                 # create the TreeView using liststore
56                 self.treeview = gtk.TreeView(self.liststore)
57                 
58                 # create a CellRenderers to render the data
59                 self.cell1 = gtk.CellRendererText()
60                 self.cell2 = gtk.CellRendererText()
61                 self.cell3 = gtk.CellRendererText()
62                 #self.cell1.set_property('markup', 1)
63                 
64                 # create the TreeViewColumns to display the data
65                 self.tvcolumn1 = gtk.TreeViewColumn(_('Timestamp'))
66                 self.tvcolumn2 = gtk.TreeViewColumn('SQL')
67                 self.tvcolumn3 = gtk.TreeViewColumn(_('Parameter'))
68                 
69                 # add columns to treeview
70                 self.treeview.append_column(self.tvcolumn1)
71                 self.treeview.append_column(self.tvcolumn2)
72                 self.treeview.append_column(self.tvcolumn3)
73                 
74                 
75                 self.tvcolumn1.pack_start(self.cell1, True)
76                 self.tvcolumn2.pack_start(self.cell2, True)
77                 self.tvcolumn3.pack_start(self.cell3, True)
78                 
79                 self.tvcolumn1.set_attributes(self.cell1, text=0) #Spalten setzten hier!!!!
80                 self.tvcolumn2.set_attributes(self.cell2, text=1)
81                 self.tvcolumn3.set_attributes(self.cell3, text=2)
82
83                 # make treeview searchable
84                 #self.treeview.set_search_column(0)
85                 #self.tvcolumn.set_sort_column_id(0)
86                 
87                 # Allow NOT drag and drop reordering of rows
88                 self.treeview.set_reorderable(False)
89                 
90                 scrolled_window = gtk.ScrolledWindow()
91                 scrolled_window.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
92                 scrolled_window.add(self.treeview)
93                 #self.pack_start(scrolled_window, expand=True, fill=True, padding=0)
94                 
95                 
96                 self.vbox.pack_start(scrolled_window, True, True, 0)
97                 
98                 self.vbox.show_all()
99                 
100                 msgstring=""
101                 sql="SELECT pcdatum,sql,param FROM logtable WHERE pcdatum>? ORDER BY pcdatum DESC"
102                 rows=db.ladeSQL(sql,(time.time()-3*24*3600,))
103                 for row in rows:
104                         pcdatum,sql,param = row
105                         datum=str(time.strftime(_("%d.%m.%y %H:%M:%S "), (time.localtime(pcdatum))))
106                         self.liststore.append([datum, sql,param])
107                         
108                 self.set_size_request(500,400)
109                 
110                 
111