diff options
Diffstat (limited to 'src/pies')
| -rw-r--r-- | src/pies/load.vala | 2 | ||||
| -rw-r--r-- | src/pies/pieManager.vala | 21 | ||||
| -rw-r--r-- | src/pies/save.vala | 15 | 
3 files changed, 35 insertions, 3 deletions
| diff --git a/src/pies/load.vala b/src/pies/load.vala index b606cf5..4a9274d 100644 --- a/src/pies/load.vala +++ b/src/pies/load.vala @@ -36,6 +36,8 @@ namespace Pies {              Pies.create_default_config();              return;          } +         +        message("Loading Pies from \"" + Paths.pie_config + "\".");          // load the settings file          Xml.Parser.init(); diff --git a/src/pies/pieManager.vala b/src/pies/pieManager.vala index 162a61f..85d8a14 100644 --- a/src/pies/pieManager.vala +++ b/src/pies/pieManager.vala @@ -52,6 +52,14 @@ public class PieManager : GLib.Object {      private static bool a_pie_is_active = false;      ///////////////////////////////////////////////////////////////////// +    /// Storing the position of the last Pie. Used for subpies, which are +    /// opened at their parents location. +    ///////////////////////////////////////////////////////////////////// +     +    private static int last_x = 0; +    private static int last_y = 0; +     +    /////////////////////////////////////////////////////////////////////      /// Initializes all Pies. They are loaded from the pies.conf file.      ///////////////////////////////////////////////////////////////////// @@ -73,28 +81,35 @@ public class PieManager : GLib.Object {      /// Opens the Pie with the given ID, if it exists.      ///////////////////////////////////////////////////////////////////// -    public static void open_pie(string id) { +    public static void open_pie(string id, bool at_last_position = false) {          if (!a_pie_is_active) {              Pie? pie = all_pies[id];              if (pie != null) { +                Logger.stats("OPEN " + id); +                                  a_pie_is_active = true;                  var window = new PieWindow();                  window.load_pie(pie); -                window.open(); +                 +                if (at_last_position) { +                    window.open_at(last_x, last_y); +                } else { +                    window.open(); +                }                  opened_windows.add(window);                  window.on_closed.connect(() => {                      opened_windows.remove(window);                      if (opened_windows.size == 0) { -                        ThemedIcon.clear_cache();                          Icon.clear_cache();                      }                  });                  window.on_closing.connect(() => { +                    window.get_center_pos(out last_x, out last_y);                      a_pie_is_active = false;                  }); diff --git a/src/pies/save.vala b/src/pies/save.vala index c940e5a..aadc7c8 100644 --- a/src/pies/save.vala +++ b/src/pies/save.vala @@ -30,6 +30,11 @@ namespace Pies {      /////////////////////////////////////////////////////////////////////      public void save() { +        message("Saving Pies to \"" + Paths.pie_config + "\"."); +          +        // log pie statistics +        string pie_line = "PIES"; +                   // initializes the XML-Writer          var writer = new Xml.TextWriter.filename(Paths.pie_config);          writer.set_indent(true); @@ -42,6 +47,8 @@ namespace Pies {              // if it's no dynamically created Pie              if (pie.id.length == 3) { +                int slice_count = 0;                 +                  // write all attributes of the Pie                  writer.start_element("pie");                  writer.write_attribute("name", pie.name); @@ -63,18 +70,26 @@ namespace Pies {                              writer.write_attribute("command", action.real_command);                              writer.write_attribute("quickAction", action.is_quickaction ? "true" : "false");                              writer.end_element(); +                             +                            ++ slice_count;                          }                      } else {                          writer.start_element("group");                              writer.write_attribute("type", GroupRegistry.descriptions[group.get_type().name()].id);                          writer.end_element(); +                         +                        slice_count += group.actions.size;                      }                  }                  writer.end_element(); +                 +                pie_line += " " + pie.id + "(%d)".printf(slice_count);              }          }          writer.end_element();          writer.end_document(); +         +        Logger.stats(pie_line);      }  } | 
