[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r7754 - in grc/branches/grc_reloaded: data notes src/g
From: |
jblum |
Subject: |
[Commit-gnuradio] r7754 - in grc/branches/grc_reloaded: data notes src/grc src/grc/elements src/grc/gui src/grc/gui/elements src/grc/platforms/gnuradio_python/blocks |
Date: |
Wed, 20 Feb 2008 12:22:20 -0700 (MST) |
Author: jblum
Date: 2008-02-20 12:22:19 -0700 (Wed, 20 Feb 2008)
New Revision: 7754
Added:
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/preferences.xml
Removed:
grc/branches/grc_reloaded/data/flow_graph.grc.dtd
grc/branches/grc_reloaded/data/preferences.grc.dtd
Modified:
grc/branches/grc_reloaded/notes/todo.txt
grc/branches/grc_reloaded/src/grc/ActionHandler.py
grc/branches/grc_reloaded/src/grc/Preferences.py
grc/branches/grc_reloaded/src/grc/elements/Block.py
grc/branches/grc_reloaded/src/grc/elements/FlowGraph.py
grc/branches/grc_reloaded/src/grc/gui/Dialogs.py
grc/branches/grc_reloaded/src/grc/gui/MainWindow.py
grc/branches/grc_reloaded/src/grc/gui/elements/FlowGraph.py
Log:
restored preferences functionality
Deleted: grc/branches/grc_reloaded/data/flow_graph.grc.dtd
Deleted: grc/branches/grc_reloaded/data/preferences.grc.dtd
Modified: grc/branches/grc_reloaded/notes/todo.txt
===================================================================
--- grc/branches/grc_reloaded/notes/todo.txt 2008-02-20 18:07:12 UTC (rev
7753)
+++ grc/branches/grc_reloaded/notes/todo.txt 2008-02-20 19:22:19 UTC (rev
7754)
@@ -1,9 +1,8 @@
############ GRC Reloaded: #############
-restore preferences
reload(usrp) in usrp diagnostics
generate code
setup.py for grc
-update dtds
+dtd for saved flow graphs
############ Blocks to Add: ####################
-ofdm (blks2)
Modified: grc/branches/grc_reloaded/src/grc/ActionHandler.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/ActionHandler.py 2008-02-20 18:07:12 UTC
(rev 7753)
+++ grc/branches/grc_reloaded/src/grc/ActionHandler.py 2008-02-20 19:22:19 UTC
(rev 7754)
@@ -59,8 +59,7 @@
Messages.register_messenger(self.main_window.add_report_line)
Messages.register_messenger(sys.stdout.write)
Messages.send_init()
- #flow graph settings
- #Preferences.load(self.main_window)
+ #initialize
self.init_file_paths = file_paths
self.handle_states(APPLICATION_INITIALIZE)
#enter the mainloop
@@ -165,13 +164,12 @@
ABOUT_WINDOW_DISPLAY,
DATA_TYPES_WINDOW_DISPLAY, HOTKEYS_WINDOW_DISPLAY, MATH_EXPR_WINDOW_DISPLAY,
PREFS_WINDOW_DISPLAY, FLOW_GRAPH_SCREEN_CAPTURE,
): get_action_from_name(action).set_sensitive(True)
- #TODO if not self.init_file_paths and
Preferences.restore_files(): self.init_file_paths = Preferences.files_open()
+ if not self.init_file_paths and
Preferences.restore_files(): self.init_file_paths = Preferences.files_open()
if not self.init_file_paths: self.init_file_paths = ['']
for file_path in self.init_file_paths:
self.main_window.new_page(file_path) #load pages from file paths
if not self.get_page(): self.main_window.new_page()
#ensure that at least a blank page exists
elif state == APPLICATION_QUIT:
if self.main_window.close_pages():
- #TODO Preferences.save(self.main_window)
gtk.main_quit()
exit(0)
##############################################################################################
Modified: grc/branches/grc_reloaded/src/grc/Preferences.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/Preferences.py 2008-02-20 18:07:12 UTC
(rev 7753)
+++ grc/branches/grc_reloaded/src/grc/Preferences.py 2008-02-20 19:22:19 UTC
(rev 7754)
@@ -17,7 +17,7 @@
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
"""
address@hidden Preferences
-#Holds global preferences
+#Holds global paramerences
address@hidden Josh Blum
from Constants import *
@@ -25,27 +25,93 @@
import Messages
import os
+from grc.platforms.gnuradio_python.Platform import Platform
+platform = Platform()
+from grc.gui.elements.Platform import Platform
+platform = Platform(platform)
+flow_graph = platform.get_new_flow_graph()
+block = flow_graph.get_new_block('preferences')
-#from grc.platforms.gnuradio_python.Platform import Platform
+##all params
+snap_to_grid_param = block.get_param('snap_to_grid')
+grid_size_param = block.get_param('grid_size')
+show_grid_param = block.get_param('show_grid')
-#platform = Platform()
+show_reports_param = block.get_param('show_reports')
+restore_files_param = block.get_param('restore_files')
-#from grc.gui.elements.Platform import Platform
+window_size_param = block.get_param('window_size')
+files_open_param = block.get_param('files_open')
-#platform = Platform(platform)
-
-#flow_graph = platform.get_new_flow_graph()
-
-
-
-
-
##Preferences: title, notes, params
PREFERENCES = [
- ('Test', 'TEST DESC', [
-
- ]
+ (
+ 'Grid',
+ '''
+Show grid will draw a square grid onto the flow graph with grid points
separated by grid size pixels. \
+Snap to Grid forces the upper right corner of the signal block to align with a
grid point.
+''',
+ [snap_to_grid_param, grid_size_param, show_grid_param],
),
+ (
+ 'Misc',
+ '''
+Show or hide the reports window at the bottom of the main window. \
+Restore open files will open all files that were last open in GRC.
+''',
+ [show_reports_param, restore_files_param],
+ ),
]
+
+def load(window=None):
+ """!
+ Load the preferences from the preferences file.
+ @param window optional flow graph window
+ """
+ try:
+ n =
ParseXML.from_xml(ParseXML.from_file(PREFERENCES_FILE_PATH))
+ block.import_data(n['block'])
+ #set window size
+ try:
+ size = window_size_param.evaluate()
+ if window: window.resize(*size)
+ except: pass
+ except: Messages.send_fail_load_preferences()
+
+def save(window=None):
+ """!
+ Save the preferences to the preferences file.
+ @param window optional flow graph window
+ """
+ if window:
+ size = str(window.get_size())
+ window_size_param.set_value(size)
+ try: ParseXML.to_file(ParseXML.to_xml({'block': block.export_data()}),
PREFERENCES_FILE_PATH)
+ except IOError: Messages.send_fail_save_preferences()
+
+###########################################################################
+# Special methods for specific program functionalities
+###########################################################################
+
+def restore_files():
+ return restore_files_param.get_value() == 'yes'
+
+def files_open():
+ return files_open_param.get_value().split('\n')
+
+def save_files_open(files):
+ files_open_param.set_value('\n'.join(files))
+
+def show_reports_window():
+ return show_reports_param.get_value() == 'show'
+
+def get_grid_size():
+ return int(grid_size_param.get_value())
+
+def snap_to_grid():
+ return snap_to_grid_param.get_value() == 'on'
+
+def show_grid():
+ return show_grid_param.get_value() == 'show'
Modified: grc/branches/grc_reloaded/src/grc/elements/Block.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/Block.py 2008-02-20 18:07:12 UTC
(rev 7753)
+++ grc/branches/grc_reloaded/src/grc/elements/Block.py 2008-02-20 19:22:19 UTC
(rev 7754)
@@ -191,9 +191,11 @@
Any param keys that do not exist will be ignored.
@param n the nested data odict
"""
+ #TODO error msg if key, value not exist
params_n = Utils.listify(n, 'param')
for param_n in params_n:
key = param_n['key']
value = param_n['value']
- self.get_param(key).set_value(value)
+ if key in self.get_param_keys():
+ self.get_param(key).set_value(value)
self.validate()
Modified: grc/branches/grc_reloaded/src/grc/elements/FlowGraph.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/elements/FlowGraph.py 2008-02-20
18:07:12 UTC (rev 7753)
+++ grc/branches/grc_reloaded/src/grc/elements/FlowGraph.py 2008-02-20
19:22:19 UTC (rev 7754)
@@ -37,7 +37,9 @@
#hold connections and blocks
self._elements = list()
#initialize
- Element.__init__(self, platform)
+ Element.__init__(self, platform)
+ #inital blank import
+ self.import_data({'flow_graph': {}})
def __str__(self): return 'FlowGraph - "%s"'%self.get_option('name')
Modified: grc/branches/grc_reloaded/src/grc/gui/Dialogs.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/Dialogs.py 2008-02-20 18:07:12 UTC
(rev 7753)
+++ grc/branches/grc_reloaded/src/grc/gui/Dialogs.py 2008-02-20 19:22:19 UTC
(rev 7754)
@@ -24,7 +24,6 @@
pygtk.require('2.0')
import gtk
from grc.Constants import *
-from grc import Preferences
class TextDisplay(gtk.TextView):
"""A non editable gtk text view."""
@@ -49,17 +48,18 @@
def __init__(self):
"""PreferencesDialog constructor."""
+ from grc import Preferences
gtk.Dialog.__init__(self, buttons=('gtk-close',
gtk.RESPONSE_CLOSE))
self.set_title("Preferences")
self.set_size_request(MIN_DIALOG_WIDTH, MIN_DIALOG_HEIGHT)
notebook = gtk.Notebook()
- for title,notes,params in Preferences.PREFERENCES:
- if title:
- vbox = gtk.VBox()
- vbox.pack_start(gtk.Label(''), False) #blank
label for spacing
- for param, key in params:
vbox.pack_start(param.get_input_object(), False)
- if notes: vbox.pack_start(TextDisplay(notes),
False, padding=5)
- notebook.append_page(vbox, gtk.Label(title))
+ for title,desc,params in Preferences.PREFERENCES:
+ vbox = gtk.VBox()
+ vbox.pack_start(gtk.Label(''), False) #blank label for
spacing
+ for param in params:
vbox.pack_start(param.get_input_object(), False)
+ desc = desc.strip('\n')
+ if desc: vbox.pack_start(TextDisplay(desc), False,
padding=5)
+ notebook.append_page(vbox, gtk.Label(title))
self.vbox.pack_start(notebook, True)
self.show_all()
self.run()
Modified: grc/branches/grc_reloaded/src/grc/gui/MainWindow.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/MainWindow.py 2008-02-20 18:07:12 UTC
(rev 7753)
+++ grc/branches/grc_reloaded/src/grc/gui/MainWindow.py 2008-02-20 19:22:19 UTC
(rev 7754)
@@ -30,7 +30,7 @@
from Dialogs import TextDisplay,MessageDialogHelper
from DrawingArea import DrawingArea
from grc.StateCache import StateCache
-#import Preferences
+from grc import Preferences
from grc import Messages
from grc import ParseXML
import os
@@ -218,7 +218,7 @@
vbox.show_all()
self._show_reports_window(False)
# load preferences and show the main window
- #TODO Preferences.load(self)
+ Preferences.load(self)
self.show()#show after resize in preferences
############################################################
@@ -323,7 +323,8 @@
self.page_to_be_closed = page
self.close_page(False)
if self.notebook.get_n_pages(): return False
- #TODO Preferences.save_files_open(files)
+ Preferences.save_files_open(files)
+ Preferences.save(self)
return True
def close_page(self, ensure=True):
@@ -380,8 +381,7 @@
)
)
#reports window
- #TODO
self._show_reports_window(Preferences.show_reports_window())
- self._show_reports_window(True)
+ self._show_reports_window(Preferences.show_reports_window())
def get_page(self):
"""!
Modified: grc/branches/grc_reloaded/src/grc/gui/elements/FlowGraph.py
===================================================================
--- grc/branches/grc_reloaded/src/grc/gui/elements/FlowGraph.py 2008-02-20
18:07:12 UTC (rev 7753)
+++ grc/branches/grc_reloaded/src/grc/gui/elements/FlowGraph.py 2008-02-20
19:22:19 UTC (rev 7754)
@@ -231,8 +231,8 @@
W,H = self.get_size()
self.get_gc().foreground = BACKGROUND_COLOR
self.get_pixmap().draw_rectangle(self.get_gc(), True,
0, 0, W, H)
- #TODO if Preferences.show_grid():
- if False:
+ from grc import Preferences
+ if Preferences.show_grid():
grid_size = Preferences.get_grid_size()
points = list()
for i in range(W/grid_size):
@@ -308,8 +308,8 @@
if left_click:
self.mouse_pressed = False
if self.has_moved:
- #TODO if Preferences.snap_to_grid():
- if False:
+ from grc import Preferences
+ if Preferences.snap_to_grid():
grid_size = Preferences.get_grid_size()
X,Y =
self.selected_element.get_coordinate()
deltaX = X%grid_size
@@ -318,7 +318,7 @@
deltaY = Y%grid_size
if deltaY < grid_size/2: deltaY = -1 *
deltaY
else: deltaY = grid_size - deltaY
- self.move_selected((deltaX,deltaY))
+ self.move_selected((deltaX, deltaY))
self.handle_states(BLOCK_MOVE)
self.has_moved = False
Added:
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/preferences.xml
===================================================================
---
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/preferences.xml
(rev 0)
+++
grc/branches/grc_reloaded/src/grc/platforms/gnuradio_python/blocks/preferences.xml
2008-02-20 19:22:19 UTC (rev 7754)
@@ -0,0 +1,106 @@
+<?xml version="1.0"?>
+<!DOCTYPE block SYSTEM "./block.dtd">
+<!--
+###################################################
+##Global Preferences:
+## This block should not appear in the tree.
+###################################################
+ -->
+<block>
+ <name>Preferences</name>
+ <key>preferences</key>
+ <fcn></fcn>
+ <!-- Hidden Prefs -->
+ <param>
+ <name>Files Open</name>
+ <key>files_open</key>
+ <value></value>
+ <type>string</type>
+ </param>
+ <param>
+ <name>Window Size</name>
+ <key>window_size</key>
+ <value>800, 600</value>
+ <type>int_vector</type>
+ </param>
+ <!-- Snap to Grid -->
+ <param>
+ <name>Snap to Grid</name>
+ <key>snap_to_grid</key>
+ <value>off</value>
+ <type>enum</type>
+ <option>
+ <name>Off</name>
+ <key>off</key>
+ </option>
+ <option>
+ <name>On</name>
+ <key>on</key>
+ </option>
+ </param>
+ <param>
+ <name>Grid Size</name>
+ <key>grid_size</key>
+ <value>20</value>
+ <type>enum</type>
+ <option>
+ <name>10 pixels</name>
+ <key>10</key>
+ </option>
+ <option>
+ <name>20 pixels</name>
+ <key>20</key>
+ </option>
+ <option>
+ <name>50 pixels</name>
+ <key>50</key>
+ </option>
+ <option>
+ <name>100 pixels</name>
+ <key>100</key>
+ </option>
+ </param>
+ <param>
+ <name>Show Grid</name>
+ <key>show_grid</key>
+ <value>hide</value>
+ <type>enum</type>
+ <option>
+ <name>Show</name>
+ <key>show</key>
+ </option>
+ <option>
+ <name>Hide</name>
+ <key>hide</key>
+ </option>
+ </param>
+ <!-- Misc Prefs -->
+ <param>
+ <name>Restore Open Files</name>
+ <key>restore_files</key>
+ <value>yes</value>
+ <type>enum</type>
+ <option>
+ <name>Yes</name>
+ <key>yes</key>
+ </option>
+ <option>
+ <name>No</name>
+ <key>no</key>
+ </option>
+ </param>
+ <param>
+ <name>Show Reports Window</name>
+ <key>show_reports</key>
+ <value>show</value>
+ <type>enum</type>
+ <option>
+ <name>Show</name>
+ <key>show</key>
+ </option>
+ <option>
+ <name>Hide</name>
+ <key>hide</key>
+ </option>
+ </param>
+</block>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r7754 - in grc/branches/grc_reloaded: data notes src/grc src/grc/elements src/grc/gui src/grc/gui/elements src/grc/platforms/gnuradio_python/blocks,
jblum <=