Hello community,

here is the log from the commit of package cinema for openSUSE:Factory checked 
in at 2018-12-04 20:56:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cinema (Old)
 and      /work/SRC/openSUSE:Factory/.cinema.new.19453 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cinema"

Tue Dec  4 20:56:21 2018 rev:4 rq:653667 version:1.1.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/cinema/cinema.changes    2018-10-31 
13:17:42.395267701 +0100
+++ /work/SRC/openSUSE:Factory/.cinema.new.19453/cinema.changes 2018-12-04 
20:56:29.680708380 +0100
@@ -1,0 +2,10 @@
+Mon Nov 19 18:50:24 UTC 2018 - Alexei Podvalsky <avvi...@yandex.by>
+
+- Update to 1.1.2:
+  * fixed possible chrash on smb://
+  * simplified cursor handling
+  * tavis
+  * fixed warnings and and video height
+- Build with granite >= 5.1.0
+
+-------------------------------------------------------------------

Old:
----
  playmyvideos-1.1.1.tar.gz

New:
----
  playmyvideos-1.1.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cinema.spec ++++++
--- /var/tmp/diff_new_pack.b2Sji4/_old  2018-12-04 20:56:30.332707662 +0100
+++ /var/tmp/diff_new_pack.b2Sji4/_new  2018-12-04 20:56:30.336707657 +0100
@@ -12,28 +12,28 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 Name:           cinema
-Version:        1.1.1
+Version:        1.1.2
 Release:        0
 Summary:        A video player for local files
 License:        GPL-3.0-or-later
 Group:          Productivity/Multimedia/Video/Players
 URL:            https://artemanufrij.github.io
 Source:         
https://github.com/artemanufrij/playmyvideos/archive/%{version}.tar.gz#/playmyvideos-%{version}.tar.gz
-BuildRequires:  gettext-runtime >= 0.19.7
-BuildRequires:  meson >= 0.40.0
 BuildRequires:  fdupes
+BuildRequires:  gettext-runtime >= 0.19.7
 BuildRequires:  hicolor-icon-theme
+BuildRequires:  meson >= 0.40.0
 BuildRequires:  pkgconfig
 BuildRequires:  update-desktop-files
 BuildRequires:  vala
 BuildRequires:  pkgconfig(clutter-gst-3.0)
 BuildRequires:  pkgconfig(clutter-gtk-1.0)
-BuildRequires:  pkgconfig(granite)
+BuildRequires:  pkgconfig(granite) >= 5.1.0
 BuildRequires:  pkgconfig(gtk+-3.0)
 BuildRequires:  pkgconfig(libsoup-2.4)
 BuildRequires:  pkgconfig(sqlite3)

++++++ playmyvideos-1.1.1.tar.gz -> playmyvideos-1.1.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/playmyvideos-1.1.1/.travis.yml 
new/playmyvideos-1.1.2/.travis.yml
--- old/playmyvideos-1.1.1/.travis.yml  2018-10-20 12:50:37.000000000 +0200
+++ new/playmyvideos-1.1.2/.travis.yml  2018-10-31 21:38:40.000000000 +0100
@@ -17,18 +17,8 @@
     packages:
       - libstdc++-5-dev
 
-cache:
-  directories:
-    - /tmp/liftoff
-
-matrix:
-  include:
-    - env: DIST=loki
-    - env: DIST=juno
-
 install:
-  - npm install @elementaryos/houston
+  - npm i -g @elementaryos/houston
 
 script:
-  - houston ci
-    --distribution $DIST
\ No newline at end of file
+  - houston ci
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/playmyvideos-1.1.1/Config.vala.cmake 
new/playmyvideos-1.1.2/Config.vala.cmake
--- old/playmyvideos-1.1.1/Config.vala.cmake    2018-10-20 12:50:37.000000000 
+0200
+++ new/playmyvideos-1.1.2/Config.vala.cmake    1970-01-01 01:00:00.000000000 
+0100
@@ -1,25 +0,0 @@
-//
-//  Copyright (C) 2015-2017 Artem Anufrij
-//
-//  This program is free software: you can redistribute it and/or modify
-//  it under the terms of the GNU General Public License as published by
-//  the Free Software Foundation, either version 3 of the License, or
-//  (at your option) any later version.
-//
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-//
-//  You should have received a copy of the GNU General Public License
-//  along with this program.  If not, see <https://www.gnu.org/licenses/>.
-//
-
-namespace Constants {
-public const string DATADIR = "@DATADIR@";
-public const string PKGDATADIR = "@PKGDATADIR@";
-public const string GETTEXT_PACKAGE = "@GETTEXT_PACKAGE@";
-public const string RELEASE_NAME = "@RELEASE_NAME@";
-public const string VERSION = "@VERSION@";
-public const string VERSION_INFO = "@VERSION_INFO@";
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/playmyvideos-1.1.1/data/com.github.artemanufrij.playmyvideos.appdata.xml.in 
new/playmyvideos-1.1.2/data/com.github.artemanufrij.playmyvideos.appdata.xml.in
--- 
old/playmyvideos-1.1.1/data/com.github.artemanufrij.playmyvideos.appdata.xml.in 
    2018-10-20 12:50:37.000000000 +0200
+++ 
new/playmyvideos-1.1.2/data/com.github.artemanufrij.playmyvideos.appdata.xml.in 
    2018-10-31 21:38:40.000000000 +0100
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Copyright 2017 Artem Anufrij <artem.anuf...@live.de> -->
 <component type="desktop">
-    <id>com.github.artemanufrij.playmyvideos.desktop</id>
+    <id>com.github.artemanufrij.playmyvideos</id>
     <metadata_license>CC0-1.0</metadata_license>
     <project_license>GPL-3.0+</project_license>
     <name>Cinema</name>
@@ -37,6 +37,14 @@
         </screenshot>
     </screenshots>
     <releases>
+        <release version="1.1.2" date="2018-11-04">
+            <description>
+                <p>New:</p>
+                <ul>
+                    <li>Style switcher</li>
+                </ul>
+            </description>
+        </release>
         <release version="1.1.1" date="2018-10-24">
             <description>
                 <p>Fixed:</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/playmyvideos-1.1.1/src/Dialogs/Preferences.vala 
new/playmyvideos-1.1.2/src/Dialogs/Preferences.vala
--- old/playmyvideos-1.1.1/src/Dialogs/Preferences.vala 2018-10-20 
12:50:37.000000000 +0200
+++ new/playmyvideos-1.1.2/src/Dialogs/Preferences.vala 2018-10-31 
21:38:40.000000000 +0100
@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2017-2017 Artem Anufrij <artem.anuf...@live.de>
+ * Copyright (c) 2017-2018 Artem Anufrij <artem.anuf...@live.de>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -27,7 +27,7 @@
 
 namespace PlayMyVideos.Dialogs {
     public class Preferences : Gtk.Dialog {
-        PlayMyVideos.Settings settings;
+        Settings settings;
 
         construct {
             settings = PlayMyVideos.Settings.get_default ();
@@ -58,14 +58,6 @@
             grid.row_spacing = 12;
             grid.margin = 12;
 
-            var use_dark_theme_label = new Gtk.Label (_("Use Dark Theme"));
-            use_dark_theme_label.halign = Gtk.Align.START;
-            var use_dark_theme = new Gtk.Switch ();
-            use_dark_theme.active = settings.use_dark_theme;
-            use_dark_theme.notify["active"].connect (() => {
-                settings.use_dark_theme = use_dark_theme.active;
-            });
-
             var load_content_label = new Gtk.Label (_("Load Content from The 
Movie DB"));
             load_content_label.halign = Gtk.Align.START;
             var load_content = new Gtk.Switch ();
@@ -82,13 +74,10 @@
                 settings.save_custom_covers = save_custom_covers.active;
             });
 
-            grid.attach (use_dark_theme_label, 0, 0);
-            grid.attach (use_dark_theme, 1, 0);
-            grid.attach (new Gtk.Separator (Gtk.Orientation.HORIZONTAL), 0, 1, 
2, 1);
-            grid.attach (load_content_label, 0, 2);
-            grid.attach (load_content, 1, 2);
-            grid.attach (save_custom_covers_label, 0, 3);
-            grid.attach (save_custom_covers, 1, 3);
+            grid.attach (load_content_label, 0, 0);
+            grid.attach (load_content, 1, 0);
+            grid.attach (save_custom_covers_label, 0, 1);
+            grid.attach (save_custom_covers, 1, 1);
 
             content.pack_start (grid, false, false, 0);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/playmyvideos-1.1.1/src/Interfaces/MediaKeys.vala 
new/playmyvideos-1.1.2/src/Interfaces/MediaKeys.vala
--- old/playmyvideos-1.1.1/src/Interfaces/MediaKeys.vala        2018-10-20 
12:50:37.000000000 +0200
+++ new/playmyvideos-1.1.2/src/Interfaces/MediaKeys.vala        2018-10-31 
21:38:40.000000000 +0100
@@ -28,8 +28,8 @@
 namespace PlayMyVideos.Interfaces {
     [DBus (name = "org.gnome.SettingsDaemon.MediaKeys")]
     public interface GnomeMediaKeys : GLib.Object {
-        public abstract void GrabMediaPlayerKeys (string application, uint32 
time) throws IOError;
-        public abstract void ReleaseMediaPlayerKeys (string application) 
throws IOError;
+        public abstract void GrabMediaPlayerKeys (string application, uint32 
time) throws Error;
+        public abstract void ReleaseMediaPlayerKeys (string application) 
throws Error;
         public signal void MediaPlayerKeyPressed (string application, string 
key);
     }
 
@@ -43,7 +43,7 @@
 
             try {
                 media_keys = Bus.get_proxy_sync (BusType.SESSION, 
"org.gnome.SettingsDaemon", "/org/gnome/SettingsDaemon/MediaKeys");
-            } catch (IOError e) {
+            } catch (Error e) {
                 warning ("Mediakeys error: %s", e.message);
             }
 
@@ -52,7 +52,7 @@
                 try {
                     media_keys.GrabMediaPlayerKeys 
(PlayMyVideos.PlayMyVideosApp.instance.application_id, (uint32)0);
                 }
-                catch (IOError err) {
+                catch (Error err) {
                     warning ("Could not grab media player keys: %s", 
err.message);
                 }
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/playmyvideos-1.1.1/src/MainWindow.vala 
new/playmyvideos-1.1.2/src/MainWindow.vala
--- old/playmyvideos-1.1.1/src/MainWindow.vala  2018-10-20 12:50:37.000000000 
+0200
+++ new/playmyvideos-1.1.2/src/MainWindow.vala  2018-10-31 21:38:40.000000000 
+0100
@@ -49,15 +49,9 @@
 
         construct {
             settings = Settings.get_default ();
-            settings.notify["use-dark-theme"].connect (
-                () => {
-                    Gtk.Settings.get_default 
().gtk_application_prefer_dark_theme = settings.use_dark_theme;
-                    if (settings.use_dark_theme) {
-                        app_menu.set_image (new Gtk.Image.from_icon_name 
("open-menu-symbolic", Gtk.IconSize.LARGE_TOOLBAR));
-                    } else {
-                        app_menu.set_image (new Gtk.Image.from_icon_name 
("open-menu", Gtk.IconSize.LARGE_TOOLBAR));
-                    }
-                });
+            settings.notify["use-dark-theme"].connect (() => {
+                Gtk.Settings.get_default ().gtk_application_prefer_dark_theme 
= settings.use_dark_theme;
+            });
 
             library_manager = PlayMyVideos.Services.LibraryManager.instance;
             library_manager.added_new_box.connect (
@@ -127,60 +121,55 @@
             load_settings ();
             build_ui ();
 
-            load_content_from_database.begin (
-                (obj, res) => {
-                    library_manager.sync_library_content.begin ();
-                    visible_playing_button ();
-                });
-            this.motion_notify_event.connect (
-                (event) => {
-                    show_mouse_cursor ();
-                    return false;
-                });
-            this.window_state_event.connect (
-                (event) => {
-                    current_state = event.new_window_state;
-                    return false;
-                });
-            this.delete_event.connect (
-                () => {
-                    save_settings ();
-                    player_view.reset ();
-                    return false;
-                });
-            this.key_press_event.connect (
-                (key) => {
-                    if (content.visible_child_name == "player") {
-                        switch (key.keyval) {
-                        case Gdk.Key.Left :
-                            if (Gdk.ModifierType.MOD1_MASK in key.state) {
-                                break;
-                            }
-                            if (Gdk.ModifierType.SHIFT_MASK in key.state) {
-                                seek_seconds (-300);
-                            } else {
-                                seek_seconds (-10);
-                            }
-                            return true;
-                        case Gdk.Key.Right :
-                            if (Gdk.ModifierType.MOD1_MASK in key.state) {
-                                break;
-                            }
-                            if (Gdk.ModifierType.SHIFT_MASK in key.state) {
-                                seek_seconds (300);
-                            } else {
-                                seek_seconds (10);
-                            }
-                            return true;
-                        case Gdk.Key.space :
-                            toggle_playing ();
-                            return true;
+            load_content_from_database.begin ((obj, res) => {
+                library_manager.sync_library_content.begin ();
+                visible_playing_button ();
+            });
+            this.motion_notify_event.connect ((event) => {
+                show_mouse_cursor ();
+                return false;
+            });
+            this.window_state_event.connect ((event) => {
+                current_state = event.new_window_state;
+                return false;
+            });
+            this.delete_event.connect (() => {
+                save_settings ();
+                player_view.reset ();
+                return false;
+            });
+            this.key_press_event.connect ((key) => {
+                if (content.visible_child_name == "player") {
+                    switch (key.keyval) {
+                    case Gdk.Key.Left :
+                        if (Gdk.ModifierType.MOD1_MASK in key.state) {
+                            break;
+                        }
+                        if (Gdk.ModifierType.SHIFT_MASK in key.state) {
+                            seek_seconds (-300);
+                        } else {
+                            seek_seconds (-10);
+                        }
+                        return true;
+                    case Gdk.Key.Right :
+                        if (Gdk.ModifierType.MOD1_MASK in key.state) {
+                            break;
+                        }
+                        if (Gdk.ModifierType.SHIFT_MASK in key.state) {
+                            seek_seconds (300);
+                        } else {
+                            seek_seconds (10);
                         }
-                    } else if (!search_entry.is_focus && key.str.strip 
().length > 0) {
-                        search_entry.grab_focus ();
+                        return true;
+                    case Gdk.Key.space :
+                        toggle_playing ();
+                        return true;
                     }
-                    return false;
-                });
+                } else if (!search_entry.is_focus && key.str.strip ().length > 
0) {
+                    search_entry.grab_focus ();
+                }
+                return false;
+            });
         }
 
         private void build_ui () {
@@ -189,61 +178,130 @@
 
             headerbar = new Gtk.HeaderBar ();
             headerbar.show_close_button = true;
-            headerbar.get_style_context ().add_class ("default-decoration");
             headerbar.title = _ ("Cinema");
 
+            header_build_play_button ();
+
+            header_build_app_menu ();
+
+            header_build_style_switcher ();
+
+            header_build_search_entry ();
+
+            // SPINNER
+            spinner = new Gtk.Spinner ();
+            headerbar.pack_end (spinner);
+
+            header_build_back_button ();
+
+            this.set_titlebar (headerbar);
+
+            boxes_view = new Widgets.Views.BoxesView ();
+            boxes_view.video_selected.connect (show_player);
+            boxes_view.box_removed.connect ((current_count) => {
+                if (current_count == 0) {
+                    Idle.add (() => {
+                        if (content.visible_child_name != "welcome") {
+                            content.visible_child_name = "welcome";
+                        }
+                        return false;
+                    });
+                }
+            });
+
+            player_view = new Widgets.Views.PlayerView ();
+            player_view.ended.connect (() => {
+                settings.last_played_video_uri = "";
+                settings.last_played_video_progress = 0;
+                show_boxes ();
+            });
+            player_view.started.connect ((video) => {
+                headerbar.title = video.title;
+                play_button.visible = false;
+            });
+            player_view.player_frame_resized.connect ((width, height) => {
+                if (width < 0 || height < 0) {
+                    return;
+                }
+                var current_width = this.get_allocated_width ();
+                double w_r = (double)(current_width - 156) / width;
+                int new_height = (int)(height * w_r) + 193;
+                if (current_width <= 0 || new_height <=0) {
+                    return;
+                }
+                this.get_window ().resize (current_width, new_height);
+            });
+
+            var welcome = new Widgets.Views.Welcome ();
+
+            content.add_named (welcome, "welcome");
+            content.add_named (boxes_view, "boxes");
+            content.add_named (player_view, "player");
+            this.add (content);
+            this.show_all ();
+            navigation_button.hide ();
+        }
+
+        private void header_build_play_button () {
             play_button = new Gtk.Button.from_icon_name 
("media-playback-start-symbolic", Gtk.IconSize.LARGE_TOOLBAR);
             play_button.valign = Gtk.Align.CENTER;
             play_button.tooltip_text = _ ("Resume playing");
-            play_button.clicked.connect (
-                () => {
-                    toggle_playing ();
-                });
+            play_button.clicked.connect (() => {
+                toggle_playing ();
+            });
 
             headerbar.pack_start (play_button);
+        }
+
+        private void header_build_back_button () {
+            navigation_button = new Gtk.Button ();
+            navigation_button.label = _ ("Back");
+            navigation_button.valign = Gtk.Align.CENTER;
+            navigation_button.can_focus = false;
+            navigation_button.get_style_context ().add_class ("back-button");
+            navigation_button.clicked.connect (() => {
+                settings.last_played_video_progress = 
player_view.playback.progress;
+                show_boxes ();
+                player_view.clear_last_size ();
+            });
 
-            //SETTINGS MENU
+            headerbar.pack_start (navigation_button);
+        }
+
+        private void header_build_app_menu () {
             app_menu = new Gtk.MenuButton ();
-            if (settings.use_dark_theme) {
-                app_menu.set_image (new Gtk.Image.from_icon_name 
("open-menu-symbolic", Gtk.IconSize.LARGE_TOOLBAR));
-            } else {
-                app_menu.set_image (new Gtk.Image.from_icon_name ("open-menu", 
Gtk.IconSize.LARGE_TOOLBAR));
-            }
+            app_menu.set_image (new Gtk.Image.from_icon_name 
("open-menu-symbolic", Gtk.IconSize.LARGE_TOOLBAR));
 
             var settings_menu = new Gtk.Menu ();
 
             var menu_item_library = new Gtk.MenuItem.with_label (_ ("Change 
Video Folder…"));
-            menu_item_library.activate.connect (
-                () => {
-                    var folder = library_manager.choose_folder ();
-                    if (folder != null) {
-                        settings.library_location = folder;
-                        library_manager.scan_local_library_for_new_files 
(folder);
-                    }
-                });
+            menu_item_library.activate.connect (() => {
+                var folder = library_manager.choose_folder ();
+                if (folder != null) {
+                    settings.library_location = folder;
+                    library_manager.scan_local_library_for_new_files (folder);
+                }
+            });
 
             var menu_item_import = new Gtk.MenuItem.with_label (_ ("Import 
Videos…"));
-            menu_item_import.activate.connect (
-                () => {
-                    var folder = library_manager.choose_folder ();
-                    if (folder != null) {
-                        library_manager.scan_local_library_for_new_files 
(folder);
-                    }
-                });
+            menu_item_import.activate.connect (() => {
+                var folder = library_manager.choose_folder ();
+                if (folder != null) {
+                    library_manager.scan_local_library_for_new_files (folder);
+                }
+            });
 
             menu_item_rescan = new Gtk.MenuItem.with_label (_ ("Rescan 
Library"));
-            menu_item_rescan.activate.connect (
-                () => {
-                    reset_all_views ();
-                    library_manager.rescan_library ();
-                });
+            menu_item_rescan.activate.connect (() => {
+                reset_all_views ();
+                library_manager.rescan_library ();
+            });
 
             var menu_item_preferences = new Gtk.MenuItem.with_label (_ 
("Preferences"));
-            menu_item_preferences.activate.connect (
-                () => {
-                    var preferences = new Dialogs.Preferences (this);
-                    preferences.run ();
-                });
+            menu_item_preferences.activate.connect (() => {
+                var preferences = new Dialogs.Preferences (this);
+                preferences.run ();
+            });
 
             settings_menu.append (menu_item_library);
             settings_menu.append (menu_item_import);
@@ -255,73 +313,26 @@
 
             app_menu.popup = settings_menu;
             headerbar.pack_end (app_menu);
+        }
+
+        private void header_build_style_switcher () {
+            var mode_switch = new Granite.ModeSwitch.from_icon_name 
("display-brightness-symbolic", "weather-clear-night-symbolic");
+            mode_switch.valign = Gtk.Align.CENTER;
+            mode_switch.active = settings.use_dark_theme;
+            mode_switch.notify["active"].connect (() => {
+                settings.use_dark_theme = mode_switch.active;
+            });
+            headerbar.pack_end (mode_switch);
+        }
 
+        private void header_build_search_entry () {
             search_entry = new Gtk.SearchEntry ();
             search_entry.placeholder_text = _ ("Search Videos");
             search_entry.valign = Gtk.Align.CENTER;
-            search_entry.search_changed.connect (
-                () => {
-                    boxes_view.filter = search_entry.text;
-                });
+            search_entry.search_changed.connect (() => {
+                boxes_view.filter = search_entry.text;
+            });
             headerbar.pack_end (search_entry);
-
-            // SPINNER
-            spinner = new Gtk.Spinner ();
-            headerbar.pack_end (spinner);
-
-            navigation_button = new Gtk.Button ();
-            navigation_button.label = _ ("Back");
-            navigation_button.valign = Gtk.Align.CENTER;
-            navigation_button.can_focus = false;
-            navigation_button.get_style_context ().add_class ("back-button");
-            navigation_button.clicked.connect (
-                () => {
-                    settings.last_played_video_progress = 
player_view.playback.progress;
-                    show_boxes ();
-                    player_view.clear_last_size ();
-                });
-
-            headerbar.pack_start (navigation_button);
-
-            this.set_titlebar (headerbar);
-
-            boxes_view = new Widgets.Views.BoxesView ();
-            boxes_view.video_selected.connect (show_player);
-
-            player_view = new Widgets.Views.PlayerView ();
-            player_view.ended.connect (
-                () => {
-                    settings.last_played_video_uri = "";
-                    settings.last_played_video_progress = 0;
-                    show_boxes ();
-                });
-            player_view.started.connect (
-                (video) => {
-                    headerbar.title = video.title;
-                    play_button.visible = false;
-                });
-            player_view.player_frame_resized.connect (
-                (width, height) => {
-                    if (width < 0 || height < 0) {
-                        return;
-                    }
-                    var current_width = this.get_allocated_width ();
-                    double w_r = (double)(current_width - 156) / width;
-                    int new_height = (int)(height * w_r) + 206;
-                    if (current_width <= 0 || new_height <=0) {
-                        return;
-                    }
-                    this.get_window ().resize (current_width, new_height);
-                });
-
-            var welcome = new Widgets.Views.Welcome ();
-
-            content.add_named (welcome, "welcome");
-            content.add_named (boxes_view, "boxes");
-            content.add_named (player_view, "player");
-            this.add (content);
-            this.show_all ();
-            navigation_button.hide ();
         }
 
         private void visible_playing_button () {
@@ -480,8 +491,7 @@
         }
 
         public void hide_mouse_cursor () {
-            var display = this.get_window ().get_display ();
-            var cursor = new Gdk.Cursor.for_display (display, 
Gdk.CursorType.BLANK_CURSOR);
+            var cursor = new Gdk.Cursor.from_name (Gdk.Display.get_default (), 
"none");
             this.get_window ().set_cursor (cursor);
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/playmyvideos-1.1.1/src/Objects/Box.vala 
new/playmyvideos-1.1.2/src/Objects/Box.vala
--- old/playmyvideos-1.1.1/src/Objects/Box.vala 2018-10-20 12:50:37.000000000 
+0200
+++ new/playmyvideos-1.1.2/src/Objects/Box.vala 2018-10-31 21:38:40.000000000 
+0100
@@ -80,17 +80,15 @@
             settings = Settings.get_default ();
             library_manager = Services.LibraryManager.instance;
             db_manager = library_manager.db_manager;
-            video_removed.connect (
-                (video) => {
-                    this._videos.remove (video);
-                    if (this.videos.length () == 0) {
-                        db_manager.remove_box (this);
-                    }
-                });
-            removed.connect (
-                () => {
-                    FileUtils.remove (cover_path);
-                });
+            video_removed.connect ((video) => {
+                this._videos.remove (video);
+                if (this.videos.length () == 0) {
+                    db_manager.remove_box (this);
+                }
+            });
+            removed.connect (() => {
+                FileUtils.remove (cover_path);
+            });
         }
 
         public Box (string title = "") {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/playmyvideos-1.1.1/src/Services/LibraryManager.vala 
new/playmyvideos-1.1.2/src/Services/LibraryManager.vala
--- old/playmyvideos-1.1.1/src/Services/LibraryManager.vala     2018-10-20 
12:50:37.000000000 +0200
+++ new/playmyvideos-1.1.2/src/Services/LibraryManager.vala     2018-10-31 
21:38:40.000000000 +0100
@@ -98,7 +98,7 @@
         // LOCAL FILES REGION
         public async void sync_library_content () {
             new Thread <void*> (
-                null,
+                "sync_library_content",
                 () => {
                     remove_non_existent_items ();
                     scan_local_library_for_new_files 
(settings.library_location);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/playmyvideos-1.1.1/src/Services/LocalFilesManager.vala 
new/playmyvideos-1.1.2/src/Services/LocalFilesManager.vala
--- old/playmyvideos-1.1.1/src/Services/LocalFilesManager.vala  2018-10-20 
12:50:37.000000000 +0200
+++ new/playmyvideos-1.1.2/src/Services/LocalFilesManager.vala  2018-10-31 
21:38:40.000000000 +0100
@@ -66,6 +66,10 @@
                                 scan_local_files (target);
                             }
                         } else if (file_info.get_file_type () == 
FileType.DIRECTORY) {
+                            // Without usleep it crashes on smb:// protocol
+                            if (!directory.get_uri ().has_prefix ("file://")) {
+                                Thread.usleep (1000000);
+                            }
                             scan_local_files (GLib.Path.build_filename (path, 
file_info.get_name ()));
                         } else {
                             string mime_type = file_info.get_content_type ();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/playmyvideos-1.1.1/src/Widgets/Box.vala 
new/playmyvideos-1.1.2/src/Widgets/Box.vala
--- old/playmyvideos-1.1.1/src/Widgets/Box.vala 2018-10-20 12:50:37.000000000 
+0200
+++ new/playmyvideos-1.1.2/src/Widgets/Box.vala 2018-10-31 21:38:40.000000000 
+0100
@@ -31,6 +31,7 @@
         PlayMyVideos.Settings settings;
 
         public signal void video_selected (Objects.Video video);
+        public signal void removed ();
 
         public Objects.Box box { get; private set; }
         public string title { get { return box.title; } }
@@ -59,7 +60,7 @@
             });
             this.box.removed.connect (() => {
                 Idle.add (() => {
-                    this.destroy ();
+                    removed ();
                     return false;
                 });
             });
@@ -147,7 +148,7 @@
 
         private bool show_context_menu (Gtk.Widget sender, Gdk.EventButton 
evt) {
             if (evt.type == Gdk.EventType.BUTTON_PRESS && evt.button == 3) {
-                menu.popup (null, null, null, evt.button, evt.time);
+                menu.popup_at_pointer (null);
                 return true;
             }
             return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/playmyvideos-1.1.1/src/Widgets/Video.vala 
new/playmyvideos-1.1.2/src/Widgets/Video.vala
--- old/playmyvideos-1.1.1/src/Widgets/Video.vala       2018-10-20 
12:50:37.000000000 +0200
+++ new/playmyvideos-1.1.2/src/Widgets/Video.vala       2018-10-31 
21:38:40.000000000 +0100
@@ -34,7 +34,6 @@
         Gtk.Image thumbnail;
 
         public Video (Objects.Video video) {
-
             this.video = video;
             this.video.thumbnail_normal_changed.connect (() => {
                 thumbnail.pixbuf = video.thumbnail_normal;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/playmyvideos-1.1.1/src/Widgets/Views/BoxView.vala 
new/playmyvideos-1.1.2/src/Widgets/Views/BoxView.vala
--- old/playmyvideos-1.1.1/src/Widgets/Views/BoxView.vala       2018-10-20 
12:50:37.000000000 +0200
+++ new/playmyvideos-1.1.2/src/Widgets/Views/BoxView.vala       2018-10-31 
21:38:40.000000000 +0100
@@ -116,7 +116,10 @@
         }
 
         private void current_box_removed () {
-            box_removed ();
+            Idle.add (() => {
+                box_removed ();
+                return false;
+            });
         }
 
         private void change_cover () {
@@ -149,7 +152,7 @@
 
         private bool show_context_menu (Gtk.Widget sender, Gdk.EventButton 
evt) {
             if (evt.type == Gdk.EventType.BUTTON_PRESS && evt.button == 3) {
-                menu.popup (null, null, null, evt.button, evt.time);
+                menu.popup_at_pointer (null);
                 return true;
             }
             return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/playmyvideos-1.1.1/src/Widgets/Views/BoxesView.vala 
new/playmyvideos-1.1.2/src/Widgets/Views/BoxesView.vala
--- old/playmyvideos-1.1.1/src/Widgets/Views/BoxesView.vala     2018-10-20 
12:50:37.000000000 +0200
+++ new/playmyvideos-1.1.2/src/Widgets/Views/BoxesView.vala     2018-10-31 
21:38:40.000000000 +0100
@@ -30,6 +30,7 @@
         Services.LibraryManager library_manager;
 
         public signal void video_selected (Objects.Video video);
+        public signal void box_removed (uint current_count);
 
         Gtk.FlowBox boxes;
         Gtk.Revealer action_revealer;
@@ -60,14 +61,12 @@
 
         construct {
             library_manager = Services.LibraryManager.instance;
-            library_manager.added_new_box.connect (
-                (box) => {
-                    Idle.add (
-                        () => {
-                            add_box (box);
-                            return false;
-                        });
+            library_manager.added_new_box.connect ((box) => {
+                Idle.add (() => {
+                    add_box (box);
+                    return false;
                 });
+            });
         }
 
         public BoxesView () {
@@ -113,10 +112,15 @@
 
         public void add_box (Objects.Box box) {
             var b = new Widgets.Box (box);
-            b.video_selected.connect (
-                (video) => {
-                    video_selected (video);
-                });
+            b.removed.connect (() => {
+                lock (boxes) {
+                    b.destroy ();
+                    box_removed (boxes.get_children().length ());
+                }
+            });
+            b.video_selected.connect ((video) => {
+                video_selected (video);
+            });
             lock (boxes) {
                 boxes.add (b);
             }
@@ -124,20 +128,20 @@
         }
 
         private void do_sort () {
-            if (timer_sort != 0) {
-                Source.remove (timer_sort);
-                timer_sort = 0;
-            }
+            lock (timer_sort) {
+                if (timer_sort != 0) {
+                    Source.remove (timer_sort);
+                    timer_sort = 0;
+                }
 
-            timer_sort = Timeout.add (
-                500,
-                () => {
+                timer_sort = Timeout.add (500, () => {
                     boxes.set_sort_func (boxes_sort_func);
                     boxes.set_sort_func (null);
                     Source.remove (timer_sort);
                     timer_sort = 0;
                     return false;
                 });
+            }
         }
 
         private void do_search () {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/playmyvideos-1.1.1/src/Widgets/Views/PlayerView.vala 
new/playmyvideos-1.1.2/src/Widgets/Views/PlayerView.vala
--- old/playmyvideos-1.1.1/src/Widgets/Views/PlayerView.vala    2018-10-20 
12:50:37.000000000 +0200
+++ new/playmyvideos-1.1.2/src/Widgets/Views/PlayerView.vala    2018-10-31 
21:38:40.000000000 +0100
@@ -182,6 +182,7 @@
                 }
                 return;
             }
+            pause ();
             current_video = video;
             if (current_video.box != null) {
                 playlist.show_box (current_video.box);


Reply via email to