pingus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-CVS] [pingus] push by address@hidden - Added EditorScreen::set_l


From: pingus
Subject: [Pingus-CVS] [pingus] push by address@hidden - Added EditorScreen::set_level() on 2011-10-17 22:37 GMT
Date: Mon, 17 Oct 2011 22:38:29 +0000

Revision: b6e9acdc4f09
Author:   Ingo Ruhnke <address@hidden>
Date:     Mon Oct 17 15:37:29 2011
Log:      Added EditorScreen::set_level()

http://code.google.com/p/pingus/source/detail?r=b6e9acdc4f09

Modified:
 /src/editor/editor_screen.cpp
 /src/editor/editor_screen.hpp

=======================================
--- /src/editor/editor_screen.cpp       Mon Oct 17 15:13:14 2011
+++ /src/editor/editor_screen.cpp       Mon Oct 17 15:37:29 2011
@@ -163,6 +163,18 @@
     plf->save_level(filename);
   }
 }
+
+void
+EditorScreen::set_level(std::unique_ptr<EditorLevel> level)
+{
+  viewport->clear_selection();
+
+  plf = std::move(level);
+
+  level_properties->set_level(plf.get());
+  action_properties->set_level(plf.get());
+  viewport->refresh();
+}

 // Load a new level
 void
@@ -175,20 +187,12 @@
     if (System::get_file_extension(filename) == "prefab")
     {
       level_pathname = file;
-      viewport->clear_selection();
-      plf = EditorLevel::from_prefab_file(level_pathname);
-      level_properties->set_level(plf.get());
-      action_properties->set_level(plf.get());
-      viewport->refresh();
+      set_level(EditorLevel::from_prefab_file(level_pathname));
     }
     else
     {
       level_pathname = file;
-      viewport->clear_selection();
-      plf = EditorLevel::from_level_file(level_pathname);
-      level_properties->set_level(plf.get());
-      action_properties->set_level(plf.get());
-      viewport->refresh();
+      set_level(EditorLevel::from_level_file(level_pathname));
     }
   }
   catch(const std::exception& err)
@@ -315,11 +319,7 @@
 {
   // FIXME: dialogs don't update
   level_pathname = Pathname();
-  viewport->clear_selection();
-  plf.reset(new EditorLevel);
-  level_properties->set_level(plf.get());
-  action_properties->set_level(plf.get());
-  viewport->refresh();
+  set_level(std::unique_ptr<EditorLevel>(new EditorLevel));
 }

 void
=======================================
--- /src/editor/editor_screen.hpp       Mon Oct 10 16:10:02 2011
+++ /src/editor/editor_screen.hpp       Mon Oct 17 15:37:29 2011
@@ -89,6 +89,8 @@

   /** Return the viewport */
   Viewport* get_viewport() const { return viewport; }
+
+  void set_level(std::unique_ptr<EditorLevel> level);

   /** Return a pointer to the current level */
   EditorLevel* get_level() const { return plf.get(); }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]