[gnome-games/wip/exalm/rebrand: 110/124] Remove Title




commit 41dce614e5e11af65a6e0a10a6d8d86a1cee8833
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Wed Mar 31 00:26:08 2021 +0500

    Remove Title
    
    Just use strings. There's no error handling, no need for hacky properties
    on Games and it's overall cleaner. Previously Title was used for lazy
    loading, but it's not relevant anymore since loading is threaded.

 src/core/game-model.vala            |  2 +-
 src/core/game-parser.vala           |  4 ++--
 src/core/game.vala                  | 28 ++++------------------------
 src/core/media-set/media-set.vala   | 16 ++++------------
 src/core/media.vala                 | 18 ++++--------------
 src/core/runner.vala                |  2 +-
 src/core/title.vala                 |  5 -----
 src/database/database.vala          | 17 ++++++++---------
 src/generic/generic-title.vala      | 13 -------------
 src/grilo/grilo-media.vala          |  7 +++----
 src/meson.build                     |  3 ---
 src/platforms/mame/mame-parser.vala | 11 +++++------
 src/ui/display-view.vala            |  2 +-
 src/ui/game-icon-view.vala          |  2 +-
 src/ui/media-menu-button.vala       | 14 +-------------
 15 files changed, 35 insertions(+), 109 deletions(-)
---
diff --git a/src/core/game-model.vala b/src/core/game-model.vala
index be4058c1..be707f0e 100644
--- a/src/core/game-model.vala
+++ b/src/core/game-model.vala
@@ -74,7 +74,7 @@ private class Games.GameModel : Object, ListModel {
        public void replace_game (Game game, Game prev_game) {
                // Title changed, just hope it doesn't happen too often
                // FIX ME always_replace is a temporary hack until on_game_replaced is redone
-               if (prev_game.name != game.name || always_replace) {
+               if (prev_game.title != game.title || always_replace) {
                        remove_game (prev_game);
                        add_game (game);
 
diff --git a/src/core/game-parser.vala b/src/core/game-parser.vala
index 8025a66f..9716859d 100644
--- a/src/core/game-parser.vala
+++ b/src/core/game-parser.vala
@@ -15,8 +15,8 @@ public class Games.GameParser : Object {
                return Fingerprint.get_uid (uri, platform.get_uid_prefix ());
        }
 
-       public virtual Title get_title () {
-               return new GenericTitle (Filename.get_title (uri));
+       public virtual string get_title () {
+               return Filename.get_title (uri);
        }
 
        public virtual Icon? get_icon () {
diff --git a/src/core/game.vala b/src/core/game.vala
index be055753..49d743b8 100644
--- a/src/core/game.vala
+++ b/src/core/game.vala
@@ -3,27 +3,7 @@
 public class Games.Game : Object {
        public signal void replaced (Game new_game);
 
-       private string _name;
-       public string name {
-               get {
-                       if (_name != null)
-                               return _name;
-
-                       try {
-                               _name = title.get_title ();
-                       }
-                       catch (Error e) {
-                               warning (e.message);
-                       }
-
-                       if (_name == null)
-                               _name = "";
-
-                       return _name;
-               }
-       }
-
-       public Title title { get; private set; }
+       public string title { get; private set; }
        public Uid uid { get; private set; }
        public Uri uri { get; private set; }
        public Platform platform { get; private set; }
@@ -34,7 +14,7 @@ public class Games.Game : Object {
        private Icon game_icon;
        private Cover game_cover;
 
-       public Game (Uid uid, Uri uri, Title title, Platform platform) {
+       public Game (Uid uid, Uri uri, string title, Platform platform) {
                this.uid = uid;
                this.uri = uri;
                this.title = title;
@@ -66,7 +46,7 @@ public class Games.Game : Object {
        public bool matches_search_terms (string[] search_terms) {
                if (search_terms.length != 0)
                        foreach (var term in search_terms)
-                               if (!(term.casefold () in name.casefold ()))
+                               if (!(term.casefold () in title.casefold ()))
                                        return false;
 
                return true;
@@ -88,7 +68,7 @@ public class Games.Game : Object {
        }
 
        public static int compare (Game a, Game b) {
-               var ret = a.name.collate (b.name);
+               var ret = a.title.collate (b.title);
                if (ret != 0)
                        return ret;
 
diff --git a/src/core/media-set/media-set.vala b/src/core/media-set/media-set.vala
index 86e0fd62..70288883 100644
--- a/src/core/media-set/media-set.vala
+++ b/src/core/media-set/media-set.vala
@@ -5,12 +5,12 @@ public class Games.MediaSet : Object {
 
        public int selected_media_number { get; set; default = 0; }
        public string id { get; private set; }
-       public Title title { get; private set; }
+       public string? title { get; private set; }
        public string icon_name { get; set; }
 
        private Media[] medias;
 
-       public MediaSet (string id, Title? title = null) {
+       public MediaSet (string id, string? title = null) {
                this.id = id;
                this.title = title;
        }
@@ -24,7 +24,7 @@ public class Games.MediaSet : Object {
                var medias_child = variant.get_child_value (3);
 
                id = id_child.get_string ();
-               title = new GenericTitle (title_child.get_string ());
+               title = title_child.get_string ();
                icon_name = icon_child.get_string ();
 
                medias = {};
@@ -64,17 +64,9 @@ public class Games.MediaSet : Object {
                        media_variants += media.serialize ();
                });
 
-               string title_string = null;
-               try {
-                       title_string = title.get_title ();
-               } catch (Error e) {
-                       critical ("Couldn't get title: %s", e.message);
-                       title_string = "";
-               }
-
                return new Variant.tuple ({
                        new Variant.string (id),
-                       new Variant.string (title_string),
+                       new Variant.string (title),
                        new Variant.string (icon_name),
                        new Variant.array (Media.get_variant_type (), media_variants)
                });
diff --git a/src/core/media.vala b/src/core/media.vala
index 101fbbe8..938282c2 100644
--- a/src/core/media.vala
+++ b/src/core/media.vala
@@ -2,11 +2,11 @@
 
 public class Games.Media : Object {
        public string id { get; private set; }
-       public Title title { get; private set; }
+       public string title { get; private set; }
 
        private Uri[] uris;
 
-       public Media (string id, Title title) {
+       public Media (string id, string title) {
                this.id = id;
                this.title = title;
                this.uris = {};
@@ -21,7 +21,7 @@ public class Games.Media : Object {
                var uris_child = variant.get_child_value (child_index++);
 
                id = id_child.get_string ();
-               title = new GenericTitle (title_child.get_string ());
+               title = title_child.get_string ();
 
                uris = {};
                for (int i = 0; i < uris_child.n_children (); i++) {
@@ -39,23 +39,13 @@ public class Games.Media : Object {
        }
 
        public Variant serialize () {
-               string title_string = null;
-               if (title != null)
-                       try {
-                               title_string = title.get_title ();
-                       }
-                       catch (Error e) {
-                               critical ("Couldn't get title: %s", e.message);
-                               title_string = "";
-                       }
-
                Variant[] uri_variants = {};
                foreach (var uri in uris)
                        uri_variants += new Variant.string (uri.to_string ());
 
                return new Variant.tuple ({
                        new Variant.string (id),
-                       new Variant.string (title_string),
+                       new Variant.string (title),
                        new Variant.array (VariantType.STRING, uri_variants)
                });
        }
diff --git a/src/core/runner.vala b/src/core/runner.vala
index 38a256e4..8d8dd16f 100644
--- a/src/core/runner.vala
+++ b/src/core/runner.vala
@@ -486,7 +486,7 @@ public class Games.Runner : Object {
 
                var now = new GLib.DateTime.now_local ();
                var creation_time = now.to_string ();
-               var game_title = game.name;
+               var game_title = game.title;
                var platform = game.platform;
                var platform_name = platform.get_name ();
                var platform_id = platform.get_id ();
diff --git a/src/database/database.vala b/src/database/database.vala
index 330fcca9..49ecdd66 100644
--- a/src/database/database.vala
+++ b/src/database/database.vala
@@ -343,7 +343,7 @@ private class Games.Database : Object {
        public Game? store_game (Game game) throws Error {
                var uid = game.uid.to_string ();
                var uri = game.uri.to_string ();
-               var title = game.name;
+               var title = game.title;
                var platform = game.platform.get_id ();
                var media_set = serialize_media_set (game);
 
@@ -377,9 +377,9 @@ private class Games.Database : Object {
        public void update_game (Game game, Game? prev_game = null) throws Error {
                var uid = game.uid.to_string ();
                var uri = game.uri.to_string ();
-               var title = game.name;
+               var title = game.title;
                var media_set = serialize_media_set (game);
-               var old_title = prev_game != null ? prev_game.name : null;
+               var old_title = prev_game != null ? prev_game.title : null;
                var old_media_set = prev_game != null ? serialize_media_set (prev_game) : null;
 
                if (old_title == title && old_media_set == media_set)
@@ -487,13 +487,12 @@ private class Games.Database : Object {
                                  int is_favorite, string? last_played) throws DatabaseError {
                var game_uid = new Uid (uid);
                var game_uri = new Uri (uri);
-               var game_title = new GenericTitle (title);
                var game_platform = PlatformRegister.get_register ().get_platform (platform);
 
                if (game_platform == null)
                        throw new DatabaseError.INVALID_GAME ("Unknown platform: %s", platform);
 
-               var game = new Game (game_uid, game_uri, game_title, game_platform);
+               var game = new Game (game_uid, game_uri, title, game_platform);
                game.is_favorite = is_favorite == 1;
 
                if (last_played != null)
@@ -516,7 +515,7 @@ private class Games.Database : Object {
                var result = set_is_favorite_query.step ();
                if (result != Sqlite.DONE)
                        throw new DatabaseError.EXECUTION_FAILED ("Failed to make %s %sfavorite",
-                                                                  game.name, game.is_favorite ? "" : "non-");
+                                                                  game.title, game.is_favorite ? "" : 
"non-");
 
                return true;
        }
@@ -563,7 +562,7 @@ private class Games.Database : Object {
 
                var result = update_recently_played_game_query.step ();
                if (result != Sqlite.DONE)
-                       throw new DatabaseError.EXECUTION_FAILED ("Failed to update last played date-time of 
%s", game.name);
+                       throw new DatabaseError.EXECUTION_FAILED ("Failed to update last played date-time of 
%s", game.title);
        }
 
        private bool does_user_collection_exist (string uuid) throws Error {
@@ -619,7 +618,7 @@ private class Games.Database : Object {
                var result = add_game_to_user_collection_query.step ();
                if (result != Sqlite.DONE)
                        throw new DatabaseError.EXECUTION_FAILED ("Failed to add %s to user collection %s",
-                                                                 game.name, collection.title);
+                                                                 game.title, collection.title);
 
                return true;
        }
@@ -674,7 +673,7 @@ private class Games.Database : Object {
                var result = remove_game_from_user_collection_query.step ();
                if (result != Sqlite.DONE)
                        throw new DatabaseError.EXECUTION_FAILED ("Failed to remove %s from user collection 
%s",
-                                                                 game.name, collection.title);
+                                                                 game.title, collection.title);
 
                return true;
        }
diff --git a/src/grilo/grilo-media.vala b/src/grilo/grilo-media.vala
index dbef6f07..e7cd2d43 100644
--- a/src/grilo/grilo-media.vala
+++ b/src/grilo/grilo-media.vala
@@ -8,13 +8,13 @@ public class Games.GriloMedia : Object {
 
        public signal void resolved ();
 
-       private Title title;
+       private string title;
        private string mime_type;
        private bool resolving;
 
        private Grl.Media? media;
 
-       public GriloMedia (Title title, string mime_type) {
+       public GriloMedia (string title, string mime_type) {
                this.title = title;
                this.mime_type = mime_type;
                resolving = false;
@@ -67,8 +67,7 @@ public class Games.GriloMedia : Object {
                        return;
 
                var base_media = new Grl.Media ();
-               var title_string = title.get_title ();
-               base_media.set_title (title_string);
+               base_media.set_title (title);
                base_media.set_mime (mime_type);
 
                var keys = Grl.MetadataKey.list_new (Grl.MetadataKey.THUMBNAIL,
diff --git a/src/meson.build b/src/meson.build
index 1eeaf548..3fc7b1f6 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -41,7 +41,6 @@ vala_sources = [
   'core/runner-error.vala',
   'core/snapshot.vala',
   'core/snapshot-manager.vala',
-  'core/title.vala',
   'core/uid.vala',
   'core/uri-game-factory.vala',
   'core/uri-iterator.vala',
@@ -64,8 +63,6 @@ vala_sources = [
   'gamepad/gamepad-mapping-builder.vala',
   'gamepad/gamepad-tester.vala',
 
-  'generic/generic-title.vala',
-
   'grilo/grilo-cover.vala',
   'grilo/grilo-media.vala',
 
diff --git a/src/platforms/mame/mame-parser.vala b/src/platforms/mame/mame-parser.vala
index 2a0ab32d..508d4205 100644
--- a/src/platforms/mame/mame-parser.vala
+++ b/src/platforms/mame/mame-parser.vala
@@ -2,7 +2,7 @@
 
 public class Games.MameParser : GameParser {
        private string uid;
-       private Title title;
+       private string title;
 
        public MameParser (Platform platform, Uri uri) {
                base (platform, uri);
@@ -20,17 +20,16 @@ public class Games.MameParser : GameParser {
 
                uid = @"mame-$game_id".down ();
 
-               var title_string = supported_games[game_id];
-               title_string = title_string.split ("(")[0];
-               title_string = title_string.strip ();
-               title = new GenericTitle (title_string);
+               title = supported_games[game_id];
+               title = title.split ("(")[0];
+               title = title.strip ();
        }
 
        public override string get_uid () {
                return uid;
        }
 
-       public override Title get_title () {
+       public override string get_title () {
                return title;
        }
 }
diff --git a/src/ui/display-view.vala b/src/ui/display-view.vala
index 3d2b8258..8261ca37 100644
--- a/src/ui/display-view.vala
+++ b/src/ui/display-view.vala
@@ -361,7 +361,7 @@ private class Games.DisplayView : Gtk.Box, UiView {
        }
 
        private async void run_game_with_cancellable (Game game, Cancellable cancellable) {
-               game_title = game.name;
+               game_title = game.title;
 
                // Reset the UI parts depending on the runner to avoid an
                // inconsistent state is case we couldn't retrieve it.
diff --git a/src/ui/game-icon-view.vala b/src/ui/game-icon-view.vala
index e9d71660..26eb497d 100644
--- a/src/ui/game-icon-view.vala
+++ b/src/ui/game-icon-view.vala
@@ -26,7 +26,7 @@ private class Games.GameIconView : Gtk.FlowBoxChild {
                        _game = value;
 
                        thumbnail.game = game;
-                       title.label = game.name;
+                       title.label = game.title;
 
                        game.bind_property ("is-favorite", this, "is-favorite", BindingFlags.SYNC_CREATE);
                        game_replaced_id = game.replaced.connect (game_replaced);
diff --git a/src/ui/media-menu-button.vala b/src/ui/media-menu-button.vala
index 9d34e178..29546c1e 100644
--- a/src/ui/media-menu-button.vala
+++ b/src/ui/media-menu-button.vala
@@ -47,19 +47,7 @@ private class Games.MediaMenuButton : Gtk.Bin {
                        return;
 
                _media_set.foreach_media ((media) => {
-                       string media_name;
-                       if (media.title == null)
-                               media_name = _("Media %d").printf (media_number);
-                       else {
-                               try {
-                                       media_name = media.title.get_title ();
-                               }
-                               catch (Error e) {
-                                       warning (e.message);
-
-                                       media_name = "";
-                               }
-                       }
+                       var media_name = media.title ?? _("Media %d").printf (media_number);
 
                        var checkmark_item = new CheckmarkItem (media_name);
                        var media_has_uris = (media.get_uris ().length != 0);


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