From 98443fd466a001b41873cf57df008aa736dbb44e Mon Sep 17 00:00:00 2001
From: Allanis <allanis@saracraft.net>
Date: Fri, 21 Jun 2013 23:16:19 +0100
Subject: [PATCH] [Add] <resedit> You can now edit planet descriptions.

---
 utils/resedit/planets.glade | 58 +++++++++++++++++++++++++++++++++++--
 utils/resedit/resedit.glade |  2 ++
 utils/resedit/space.py      | 41 ++++++++++++++++++++++++--
 3 files changed, 96 insertions(+), 5 deletions(-)

diff --git a/utils/resedit/planets.glade b/utils/resedit/planets.glade
index e927270..56c7462 100644
--- a/utils/resedit/planets.glade
+++ b/utils/resedit/planets.glade
@@ -72,7 +72,7 @@
             </child>
             <child>
               <widget class="GtkComboBox" id="comFaction">
-                <property name="width_request">182</property>
+                <property name="width_request">180</property>
                 <property name="height_request">24</property>
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
@@ -494,7 +494,7 @@
             </child>
             <child>
               <widget class="GtkComboBox" id="comSpace">
-                <property name="width_request">163</property>
+                <property name="width_request">164</property>
                 <property name="height_request">24</property>
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
@@ -529,6 +529,21 @@
                 <property name="y">120</property>
               </packing>
             </child>
+            <child>
+              <widget class="GtkButton" id="butDescription">
+                <property name="width_request">240</property>
+                <property name="height_request">25</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+                <property name="label" translatable="yes">Edit Description</property>
+                <property name="response_id">0</property>
+              </widget>
+              <packing>
+                <property name="x">20</property>
+                <property name="y">150</property>
+              </packing>
+            </child>
           </widget>
           <packing>
             <property name="resize">True</property>
@@ -538,4 +553,43 @@
       </widget>
     </child>
   </widget>
+  <widget class="GtkWindow" id="winDescription">
+    <property name="type">GTK_WINDOW_POPUP</property>
+    <property name="title" translatable="yes">Edit Description</property>
+    <property name="modal">True</property>
+    <property name="window_position">GTK_WIN_POS_CENTER</property>
+    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+    <property name="gravity">GDK_GRAVITY_NORTH</property>
+    <child>
+      <widget class="GtkVBox" id="vbox1">
+        <property name="visible">True</property>
+        <child>
+          <widget class="GtkTextView" id="texDescription">
+            <property name="width_request">400</property>
+            <property name="height_request">400</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="wrap_mode">GTK_WRAP_WORD</property>
+          </widget>
+          <packing>
+            <property name="padding">10</property>
+          </packing>
+        </child>
+        <child>
+          <widget class="GtkButton" id="butDescDone">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="label" translatable="yes">Done</property>
+            <property name="response_id">0</property>
+          </widget>
+          <packing>
+            <property name="expand">False</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </widget>
+    </child>
+  </widget>
 </glade-interface>
diff --git a/utils/resedit/resedit.glade b/utils/resedit/resedit.glade
index c69c5d4..25c1741 100644
--- a/utils/resedit/resedit.glade
+++ b/utils/resedit/resedit.glade
@@ -2,6 +2,8 @@
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
 <glade-interface>
   <widget class="GtkWindow" id="winResedit">
+    <property name="title" translatable="yes">Lephisto Resource Editor</property>
+    <property name="window_position">GTK_WIN_POS_CENTER</property>
     <child>
       <widget class="GtkVBox" id="vbox1">
         <property name="visible">True</property>
diff --git a/utils/resedit/space.py b/utils/resedit/space.py
index de7ff34..c68807a 100644
--- a/utils/resedit/space.py
+++ b/utils/resedit/space.py
@@ -136,7 +136,8 @@ class Space:
         "butComAdd":["clicked", self.__commodity_add],
         "butComRm":["clicked", self.__commodity_rm],
         "comSpace":["changed", self.__space_sel],
-        "comExterior":["changed", self.__exterior_sel]
+        "comExterior":["changed", self.__exterior_sel],
+        "butDescription":["clicked", self.__edit_description]
     }
     for key, val in hooks.items():
       self.__pwidget(key).connect(val[0], val[1])
@@ -794,7 +795,7 @@ class Space:
       self.__pupdate()
 
   """
-  Change the graphics.
+  Change the planet graphics.
   """
   def __space_sel(self, wgt=None, event=None):
     space = self.__pwidget("comSpace").get_active_text()
@@ -808,6 +809,39 @@ class Space:
       self.planets[self.cur_planet]["GFX"]["exterior"] = space
       self.__pupdate()
 
+  """
+  Open the description editor.
+  """
+  def __edit_description(self, wgt=None, event=None):
+    if self.cur_planet == "":
+      return
+
+    wtree = gtk.glade.XML(self.planet_glade, "winDescription")
+    wtree.get_widget("winDescription").show_all()
+
+    # Hooks.
+    wtree.get_widget("butDescDone").connect("clicked", self.__desc_done)
+
+    # Set text.
+    buf = gtk.TextBuffer()
+    try:
+      buf.set_text(self.planets[self.cur_planet]["general"]["description"])
+    except:
+      buf.set_text("")
+    wtree.get_widget("texDescription").set_buffer(buf)
+
+    self.dtree = wtree
+
+  def __desc_done(self, wgt=None, event=None):
+    buf = self.dtree.get_widget("texDescription").get_buffer()
+    desc = buf.get_text(buf.get_start_iter(), buf.get_end_iter())
+    if desc != "":
+      self.planets[self.cur_planet]["general"]["description"] = desc
+    else:
+      if "description" in self.planets[self.cur_planet]["general"].keys():
+        del self.planets[self.cur_planet]["general"]["description"]
+    self.dtree.get_widget("winDescription").hide_all()
+
   """
   Create a new star system.
   """
@@ -825,7 +859,7 @@ class Space:
   """
   def __pnew(self, wgt=None, event=None):
     name = "new planet"
-    gfx = { "space":"none.png" }
+    gfx = { "space":"None" }
     gen = { "class":"A", "services":0 }
     pos = { "x":0, "y":0 }
     new_planet = { "GFX":gfx, "general":gen, "pos":pos }
@@ -871,6 +905,7 @@ class Space:
 
     # Append to new location.
     self.systems[sys]["planets"].append(planet)
+    print self.systems[sys]["planets"]
 
     # Recreate the tree.
     self.__genPlanetTree()