[gnome-games/wip/exalm/runner-refactor: 47/58] runner: Throw an error in restart()



commit 4df111aaa0b2c28541be557401a385e0ab6c388b
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Sat Mar 7 03:18:20 2020 +0500

    runner: Throw an error in restart()
    
    This allows to handle metadata resetting cleaner

 src/command/command-runner.vala |  2 +-
 src/core/runner.vala            |  2 +-
 src/retro/retro-runner.vala     | 11 ++---------
 src/ui/display-view.vala        |  8 +++++++-
 4 files changed, 11 insertions(+), 12 deletions(-)
---
diff --git a/src/command/command-runner.vala b/src/command/command-runner.vala
index 3e4813bb..ec54a092 100644
--- a/src/command/command-runner.vala
+++ b/src/command/command-runner.vala
@@ -82,7 +82,7 @@ public class Games.CommandRunner : Object, Runner {
                }
        }
 
-       public void restart () {
+       public void restart () throws Error {
        }
 
        public void resume () {
diff --git a/src/core/runner.vala b/src/core/runner.vala
index 6a2da325..c46aad57 100644
--- a/src/core/runner.vala
+++ b/src/core/runner.vala
@@ -17,7 +17,7 @@ public interface Games.Runner : Object {
 
        public abstract void prepare () throws RunnerError;
        public abstract void start () throws Error;
-       public abstract void restart ();
+       public abstract void restart () throws Error;
        public abstract void resume ();
        public abstract void pause ();
        public abstract void stop ();
diff --git a/src/retro/retro-runner.vala b/src/retro/retro-runner.vala
index ea68a880..0e0af15e 100644
--- a/src/retro/retro-runner.vala
+++ b/src/retro/retro-runner.vala
@@ -270,17 +270,10 @@ public class Games.RetroRunner : Object, Runner {
                resume ();
        }
 
-       public void restart () {
+       public void restart () throws Error {
                current_state_pixbuf = view.get_pixbuf ();
                try_create_savestate (true);
-
-               try {
-                       reset_metadata (latest_savestate);
-               }
-               catch (Error e) {
-                       critical ("Couldn't reset metadata: %s", e.message);
-               }
-
+               reset_metadata (latest_savestate);
                core.reset ();
        }
 
diff --git a/src/ui/display-view.vala b/src/ui/display-view.vala
index d7dc17c1..e77b2dc8 100644
--- a/src/ui/display-view.vala
+++ b/src/ui/display-view.vala
@@ -607,7 +607,13 @@ private class Games.DisplayView : Object, UiView {
 
        private void restart () {
                if (runner != null && runner.is_integrated) {
-                       runner.restart ();
+                       try {
+                               runner.restart ();
+                       }
+                       catch (Error e) {
+                               critical ("Couldn't restart: %s", e.message);
+                       }
+
                        return;
                }
 


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