Skip to content

Commit

Permalink
Added a few simple preferences
Browse files Browse the repository at this point in the history
  • Loading branch information
Carlos M. Pérez Penichet committed Feb 7, 2010
1 parent dd324de commit 00d97c0
Show file tree
Hide file tree
Showing 5 changed files with 116 additions and 12 deletions.
21 changes: 13 additions & 8 deletions bin/wiitracker.py
Expand Up @@ -43,7 +43,7 @@ def __init__(self):
"""
pass

def finish_initializing(self, builder, wiiAddress):
def finish_initializing(self, builder):
"""finish_initalizing should be called after parsing the ui definition
and creating a WiitrackerWindow object with it in order to finish
initializing the start of the new WiitrackerWindow instance.
Expand All @@ -52,13 +52,13 @@ def finish_initializing(self, builder, wiiAddress):
#get a reference to the builder and set up the signals
self.builder = builder
self.builder.connect_signals(self)
self.tracker = Wii3DTracker(wiiAddress)

#uncomment the following code to read in preferences at start up
#dlg = PreferencesWiitrackerDialog.NewPreferencesWiitrackerDialog()
#self.preferences = dlg.get_preferences()
dlg = PreferencesWiitrackerDialog.NewPreferencesWiitrackerDialog()
self.preferences = dlg.get_preferences()

#code for other initialization actions should be added here
self.tracker = Wii3DTracker(self.preferences['wiiAddress'])
self.statusBar = builder.get_object("statusbar")
self.status_context = self.statusBar.get_context_id('')
self.rollDrawing = builder.get_object('rollDrawing')
Expand All @@ -69,7 +69,6 @@ def finish_initializing(self, builder, wiiAddress):
self.menuConnectTrack = builder.get_object('menuitem_ConnectTrack')
self.menuRumble = builder.get_object('menuitem_Rumble')


self.__connectTrack_source = 0

def about(self, widget, data=None):
Expand All @@ -84,6 +83,12 @@ def preferences(self, widget, data=None):
response = prefs.run()
if response == gtk.RESPONSE_OK:
#make any updates based on changed preferences here
self.preferences = prefs.get_preferences()
self.tracker.wiiAddress = self.preferences['wiiAddress']
# if self.preferences['wiiAddress'] < self.tracker.FILTER_LENGTH:
# self.tracker.roll_fltr_1.__init__()
# self.tracker.roll_fltr_2.__init__()
self.tracker.FILTER_LENGTH = self.preferences['filterSize']
pass
prefs.destroy()

Expand Down Expand Up @@ -199,7 +204,7 @@ def __paint(self):

return not self.tracker.stopping

def NewWiitrackerWindow(wiiAddress):
def NewWiitrackerWindow():
"""NewWiitrackerWindow - returns a fully instantiated
WiitrackerWindow object. Use this function rather than
creating a WiitrackerWindow directly.
Expand All @@ -213,7 +218,7 @@ def NewWiitrackerWindow(wiiAddress):
builder = gtk.Builder()
builder.add_from_file(ui_filename)
window = builder.get_object("wiitracker_window")
window.finish_initializing(builder, wiiAddress)
window.finish_initializing(builder)
return window

if __name__ == "__main__":
Expand All @@ -229,7 +234,7 @@ def NewWiitrackerWindow(wiiAddress):
logging.debug('logging enabled')

#run the application
window = NewWiitrackerWindow("00:17:AB:39:49:98")
window = NewWiitrackerWindow()
window.show()
threads_init()
gtk.main()
Expand Down
90 changes: 87 additions & 3 deletions data/ui/PreferencesWiitrackerDialog.ui
Expand Up @@ -14,15 +14,99 @@
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<placeholder/>
<object class="GtkFrame" id="frame1">
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">out</property>
<child>
<object class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="left_padding">12</property>
<child>
<object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkHBox" id="hbox1">
<property name="visible">True</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="label" translatable="yes">Wiimote Address: </property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="AddressEntry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">&#x25CF;</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="label" translatable="yes">Filter/Damping: </property>
</object>
<packing>
<property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkHScale" id="dampingScale">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="restrict_to_fill_level">False</property>
<property name="fill_level">10</property>
<property name="digits">0</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Basic Preferences&lt;/b&gt;</property>
<property name="use_markup">True</property>
</object>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child internal-child="action_area">
<object class="GtkHButtonBox" id="dialog-action_area1">
<property name="visible">True</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="button2">
<property name="label" translatable="yes">gtk-cancel</property>
<property name="label">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
Expand All @@ -37,7 +121,7 @@
</child>
<child>
<object class="GtkButton" id="button1">
<property name="label" translatable="yes">gtk-ok</property>
<property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
Expand Down
1 change: 1 addition & 0 deletions data/ui/WiitrackerWindow.ui
Expand Up @@ -104,6 +104,7 @@
<property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<accelerator key="p" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<signal name="activate" handler="preferences"/>
</object>
</child>
Expand Down
12 changes: 11 additions & 1 deletion wiitracker/PreferencesWiitrackerDialog.py
Expand Up @@ -47,6 +47,11 @@ def finish_initializing(self, builder):
self.__record_type = "http://wiki.ubuntu.com/Quickly/RecordTypes/Wiitracker/Preferences"
self.__preferences = self.get_preferences()
#TODO:code for other initialization actions should be added here
self.addressEntry = self.builder.get_object("AddressEntry")
self.addressEntry.set_text(self.__preferences['wiiAddress'])
self.dampingScale = self.builder.get_object("dampingScale")
self.dampingScale.set_range(1, 100)
self.dampingScale.set_value(self.__preferences['filterSize'])

def get_preferences(self):
"""get_preferences -returns a dictionary object that contain
Expand All @@ -63,10 +68,13 @@ def get_preferences(self):
def __load_preferences(self):
#TODO: add prefernces to the self.__preferences dict
#default preferences that will be overwritten if some are saved
self.__preferences = {"record_type":self.__record_type}
self.__preferences = {"record_type":self.__record_type,
"wiiAddress": "00:17:AB:39:49:98",
"filterSize": 15}

results = self.__database.get_records(record_type=self.__record_type, create_view=True)

# self.__key = self.__database.put_record(Record(self.__preferences))
if len(results.rows) == 0:
#no preferences have ever been saved
#save them before returning
Expand All @@ -85,6 +93,8 @@ def ok(self, widget, data=None):

#make any updates to self.__preferences here
#self.__preferences["preference1"] = "value2"
self.__preferences["wiiAddress"] = self.addressEntry.get_text()
self.__preferences["filterSize"] = self.dampingScale.get_value()
self.__save_preferences()

def cancel(self, widget, data=None):
Expand Down
4 changes: 4 additions & 0 deletions wiitracker/Wii3DTracker.py
Expand Up @@ -113,6 +113,10 @@ def getAngles(self):
else:
nu_roll = roll + pi/self.FILTER_LENGTH

while self.roll_fltr_1.qsize() > self.FILTER_LENGTH:
self.roll_fltr_1.get()
self.roll_fltr_2.get()
self.pitch_fltr.get()
if self.roll_fltr_1.qsize() == self.FILTER_LENGTH:
self.filtered_roll_1 = self.filtered_roll_1 - self.roll_fltr_1.get()
self.filtered_roll_2 = self.filtered_roll_2 - self.roll_fltr_2.get()
Expand Down

0 comments on commit 00d97c0

Please sign in to comment.