Reveresed the stack order to be more rpn like
authorepage <eopage@byu.net>
Mon, 26 Oct 2009 12:51:05 +0000 (12:51 +0000)
committerepage <eopage@byu.net>
Mon, 26 Oct 2009 12:51:05 +0000 (12:51 +0000)
git-svn-id: file:///svnroot/ejpi/trunk@54 df6cc7de-23d0-4ae0-bb86-c17aa67b2a9d

src/ejpi.glade
src/gtkhistory.py
src/history.py

index b624b40..ed4bec8 100644 (file)
               <widget class="GtkVBox" id="historyLayout">
                 <property name="visible">True</property>
                 <child>
-                  <widget class="GtkEntry" id="entryView">
+                  <widget class="GtkScrolledWindow" id="scrollingHistory">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="editable">False</property>
+                    <property name="hscrollbar_policy">never</property>
+                    <property name="vscrollbar_policy">automatic</property>
+                    <child>
+                      <widget class="GtkTreeView" id="historyView">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="headers_visible">False</property>
+                        <property name="reorderable">True</property>
+                        <property name="rules_hint">True</property>
+                        <property name="enable_search">False</property>
+                        <property name="hover_selection">False</property>
+                        <property name="hover_expand">False</property>
+                        <property name="rubber_banding">False</property>
+                      </widget>
+                    </child>
                   </widget>
                   <packing>
-                    <property name="expand">False</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
                   </packing>
                 </child>
                 <child>
-                  <widget class="GtkScrolledWindow" id="scrollingHistory">
+                  <widget class="GtkEntry" id="entryView">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="hscrollbar_policy">never</property>
-                    <property name="vscrollbar_policy">automatic</property>
-                    <child>
-                      <widget class="GtkTreeView" id="historyView">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="headers_visible">False</property>
-                        <property name="headers_clickable">False</property>
-                        <property name="reorderable">True</property>
-                        <property name="rules_hint">True</property>
-                        <property name="enable_search">False</property>
-                        <property name="hover_selection">True</property>
-                        <property name="hover_expand">True</property>
-                        <property name="rubber_banding">True</property>
-                      </widget>
-                    </child>
+                    <property name="editable">False</property>
+                    <property name="invisible_char">&#x25CF;</property>
                   </widget>
                   <packing>
+                    <property name="expand">False</property>
                     <property name="position">2</property>
                   </packing>
                 </child>
index 4a4e5c1..f94cade 100755 (executable)
@@ -67,32 +67,37 @@ class GtkCalcHistory(history.AbstractHistory):
                self.__resultColumn.set_attributes(self.__valueCell, text=2)
 
                self._historyView.set_reorderable(True)
+               self._historyView.get_selection().set_mode(gtk.SELECTION_SINGLE)
                self._historyView.connect("row-activated", self._on_close_activated)
 
        def push(self, node):
                simpleNode = node.simplify()
-               self.__historyStore.prepend([
+               self.__historyStore.append([
                        gtk.STOCK_CLOSE,
                        operation.render_operation(self.__prettyRenderer, node),
                        operation.render_operation(self.__prettyRenderer, simpleNode),
                        node,
                        simpleNode
                ])
+               selection = self._historyView.get_selection()
+               selectionPath = (len(self.__historyStore)-1, )
+               selection.select_path(selectionPath)
+               self._historyView.scroll_to_cell(selectionPath)
 
        def pop(self):
                if len(self.__historyStore) == 0:
                        raise IndexError("Not enough items in the history for the operation")
 
-               row = self.__historyStore[0]
+               row = self.__historyStore[-1]
                data = row[self.DATA_IDX]
-               del self.__historyStore[0]
+               del self.__historyStore[-1]
 
                return data
 
        def peek(self):
                if len(self.__historyStore) == 0:
                        raise IndexError("Not enough items in the history for the operation")
-               row = self.__historyStore[0]
+               row = self.__historyStore[-1]
                data = row[self.DATA_IDX]
                return data
 
@@ -108,6 +113,7 @@ class GtkCalcHistory(history.AbstractHistory):
                        yield data
 
        def _on_close_activated(self, treeView, path, viewColumn):
+               print path
                if viewColumn is self.__closeColumn:
                        del self.__historyStore[path[0]]
                elif viewColumn is self.__resultColumn:
index 877d2b9..2f665a6 100644 (file)
@@ -159,7 +159,6 @@ class RpnCalcHistory(object):
                        for stackNode in self.history
                )
                serialized = list(serialized)
-               serialized.reverse()
                return serialized
 
        def deserialize_stack(self, data):