예제 #1
0
    def __init(self):
        # Loading configure.
        self.loginfo("Loading settings...")
        from config import config
        config.load()

        # Show splash.
        self.__show_splash()

        # Loading theme file.
        self.loginfo("Loading application theme...")
        from widget.skin import app_theme

        # Loading MediaDB.
        self.loginfo("Loading MediaDB...")
        from library import MediaDB
        MediaDB.connect("loaded", self.on_db_loaded)
        MediaDB.load()

        # Loading WebcastDB
        from webcast_library import WebcastDB
        WebcastDB.load()

        # Loading Chinese to Pinyin DB.
        from pinyin import TransforDB
        TransforDB.load()

        # initialize Gui
        self.loginfo("Initialize Gui...")
        from widget.instance import DeepinMusic
        self.app_instance = DeepinMusic()
        self.app_instance.connect("ready", self.on_ready_cb)

        if self.options.StartMinimized:
            self.app_instance.window.iconify()
예제 #2
0
 def toggle_item_collected(self, item):
     if item:
         song = item.webcast
         if song.get("collected", False):
             collected = False
         else:
             collected = True
         WebcastDB.set_property(song, {"collected": collected})
         item.update_webcast(song)
 def toggle_item_collected(self, item):        
     if item:
         song = item.webcast
         if song.get("collected", False):
             collected = False
         else:
             collected = True
         WebcastDB.set_property(song, {"collected": collected})
         item.update_webcast(song)
 def toggle_item_collected(self, item):        
     if not item: return 
     song = item.webcast
     if song.get("collected", False):
         collected = False
     else:
         collected = True
     WebcastDB.set_property(song, {"collected": collected}, emit_update=False)
     item.update_webcast(song)
     Dispatcher.emit("change-webcast", song)
예제 #5
0
 def toggle_item_collected(self, item):
     if not item: return
     song = item.webcast
     if song.get("collected", False):
         collected = False
     else:
         collected = True
     WebcastDB.set_property(song, {"collected": collected},
                            emit_update=False)
     item.update_webcast(song)
     Dispatcher.emit("change-webcast", song)
예제 #6
0
    def __idle_quit(self, *args):
        self.loginfo("Exiting...")
        Player.stop()
        self.mmkeys.release()
        Dispatcher.emit("being-quit")
        playlist_ui.save_to_library()
        MediaDB.save()
        WebcastDB.save()
        config.write()
        global_hotkeys.stop_bind()

        self.app_destroy()
        gtk.main_quit()
        self.loginfo("Exit successful.")
예제 #7
0
    def __idle_quit(self, *args):    
        self.loginfo("Exiting...")
        Player.stop()
        self.mmkeys.release()
        Dispatcher.emit("being-quit")
        playlist_ui.save_to_library()
        MediaDB.save()
        WebcastDB.save()
        config.write()
        global_hotkeys.stop_bind()

        self.app_destroy()
        gtk.main_quit()
        self.loginfo("Exit successful.")
 def get_search_songs(self, keyword):
     self.clear()
     all_songs = WebcastDB.get_all_songs()
     result_songs = filter(lambda song: keyword.lower().replace(" ", "") in song.get("search", ""),
                           all_songs)
     
     return result_songs
예제 #9
0
    def get_search_songs(self, keyword):
        self.clear()
        all_songs = WebcastDB.get_all_songs()
        result_songs = filter(
            lambda song: keyword.lower().replace(" ", "") in song.get(
                "search", ""), all_songs)

        return result_songs
예제 #10
0
    def __init__(self, *args, **kwargs):
        ListView.__init__(self, *args, **kwargs)
        targets = [("text/deepin-webcasts", gtk.TARGET_SAME_APP, 1),]
        self.drag_dest_set(gtk.DEST_DEFAULT_MOTION | gtk.DEST_DEFAULT_DROP, targets, gtk.gdk.ACTION_COPY)

        self.connect_after("drag-data-received", self.on_drag_data_received)
        self.connect("single-click-item", self.__on_single_click_item)
        self.connect("double-click-item", self.on_double_click_item)
        self.connect("button-press-event", self.on_button_press_event)
        self.connect("delete-select-items", self.try_emit_empty_signal)
        self.connect("right-press-items", self.on_right_press_items)

        self.set_expand_column(1)
        Dispatcher.connect("play-webcast", self.on_dispatcher_play_webcast)
        Dispatcher.connect("add-webcasts", self.on_dispatcher_add_webcasts)
        self.limit_number = 25
        WebcastDB.connect("changed", self.on_db_update_songs)
        
        self.preview_db_file = get_config_file("preview_webcasts.db")
    def __init__(self):
        gtk.VBox.__init__(self)
        SignalContainer.__init__(self)

        # Init categorys.
        self.get_categorys()
        
        # load data.
        self.__load_webcast_query()
        
        # Init webcastbar.
        self.__init_webcastbar()
        
        # Init iconview.
        self.metro_view = self.get_icon_view()
        self.metro_view_sw = self.metro_view.get_scrolled_window()
        
        self.page_box = gtk.VBox()
        self.page_box.add(self.metro_view_sw)
        
        
        # webcasts view
        self.webcast_view = self.get_webcast_view()
        self.webcast_view_sw = self.webcast_view.get_scrolled_window()
        
        # collect view
        self.collected_db_file = get_config_file("favorite_webcasts.db")
        self.collected_view = self.get_webcast_view()
        self.collected_view_sw = self.collected_view.get_scrolled_window()
        
        # Init collect view.
        
        # init listview page.
        self.init_listview_page()
        Dispatcher.connect("change-webcast", self.on_dispatcher_change_webcast)
        WebcastDB.connect("changed", self.on_db_update_songs)
        
        body_paned = HPaned(handle_color=app_theme.get_color("panedHandler"), enable_drag=True)
        body_paned.add1(self.webcastbar)
        body_paned.add2(self.page_box)
        self.add(body_paned)
    def __init__(self):
        gtk.VBox.__init__(self)
        SignalContainer.__init__(self)

        # Init categorys.
        self.get_categorys()

        # load data.
        self.__load_webcast_query()

        # Init webcastbar.
        self.__init_webcastbar()

        # Init iconview.
        self.metro_view = self.get_icon_view()
        self.metro_view_sw = self.metro_view.get_scrolled_window()

        self.page_box = gtk.VBox()
        self.page_box.add(self.metro_view_sw)

        # webcasts view
        self.webcast_view = self.get_webcast_view()
        self.webcast_view_sw = self.webcast_view.get_scrolled_window()

        # collect view
        self.collected_db_file = get_config_file("favorite_webcasts.db")
        self.collected_view = self.get_webcast_view()
        self.collected_view_sw = self.collected_view.get_scrolled_window()

        # Init collect view.

        # init listview page.
        self.init_listview_page()
        Dispatcher.connect("change-webcast", self.on_dispatcher_change_webcast)
        WebcastDB.connect("changed", self.on_db_update_songs)

        body_paned = HPaned(handle_color=app_theme.get_color("panedHandler"),
                            enable_drag=True)
        body_paned.add1(self.webcastbar)
        body_paned.add2(self.page_box)
        self.add(body_paned)
예제 #13
0
    def load(self):
        try:
            webcast_uris = utils.load_db(self.preview_db_file)
        except:
            webcast_uris = None

        if webcast_uris:
            webcasts = [WebcastDB.get_song(uri) for uri in webcast_uris]
        else:
            webcasts = None

        if webcasts:
            self.add_webcasts(webcasts)
예제 #14
0
    def __init__(self, *args, **kwargs):
        ListView.__init__(self, *args, **kwargs)
        targets = [
            ("text/deepin-webcasts", gtk.TARGET_SAME_APP, 1),
        ]
        self.drag_dest_set(gtk.DEST_DEFAULT_MOTION | gtk.DEST_DEFAULT_DROP,
                           targets, gtk.gdk.ACTION_COPY)

        self.connect_after("drag-data-received", self.on_drag_data_received)
        self.connect("single-click-item", self.__on_single_click_item)
        self.connect("double-click-item", self.on_double_click_item)
        self.connect("button-press-event", self.on_button_press_event)
        self.connect("delete-select-items", self.try_emit_empty_signal)
        self.connect("right-press-items", self.on_right_press_items)

        self.set_expand_column(1)
        Dispatcher.connect("play-webcast", self.on_dispatcher_play_webcast)
        Dispatcher.connect("add-webcasts", self.on_dispatcher_add_webcasts)
        self.limit_number = 25
        WebcastDB.connect("changed", self.on_db_update_songs)

        self.preview_db_file = get_config_file("preview_webcasts.db")
예제 #15
0
 def load(self):    
     try:
         webcast_uris = utils.load_db(self.preview_db_file)
     except:    
         webcast_uris = None
         
     if webcast_uris:    
         webcasts = [ WebcastDB.get_song(uri) for uri in webcast_uris]
     else:    
         webcasts = None
         
     if webcasts:    
         self.add_webcasts(webcasts)
    def load_collect_data(self):
        try:
            collected_objs = utils.load_db(self.collected_db_file)
        except:
            collected_objs = None

        if collected_objs:
            songs = [WebcastDB.get_song(uri) for uri in collected_objs]
        else:
            songs = None

        if songs:
            songs = [song for song in songs if song.get("collected", False)]
            if songs:
                self.collected_view.add_webcasts(songs)
예제 #17
0
    def __init(self):
        # Loading configure.
        self.loginfo("Loading settings...")
        from config import config
        config.load()

        # Show splash.
        self.__show_splash()

        # Loading theme file.
        self.loginfo("Loading application theme...")
        from widget.skin import app_theme


        # Loading MediaDB.
        self.loginfo("Loading MediaDB...")
        from library import MediaDB
        MediaDB.connect("loaded", self.on_db_loaded)
        MediaDB.load()

        # Loading WebcastDB
        from webcast_library import WebcastDB
        WebcastDB.load()

        # Loading Chinese to Pinyin DB.
        from pinyin import TransforDB
        TransforDB.load()

        # initialize Gui
        self.loginfo("Initialize Gui...")
        from widget.instance import DeepinMusic
        self.app_instance = DeepinMusic()
        self.app_instance.connect("ready", self.on_ready_cb)

        if self.options.StartMinimized:
            self.app_instance.window.iconify()
    def load_collect_data(self):        
        try:
            collected_objs = utils.load_db(self.collected_db_file)
        except:    
            collected_objs = None

        if collected_objs:    
            songs = [ WebcastDB.get_song(uri) for uri in collected_objs]
        else:    
            songs = None
            
        if songs:
            songs = [ song for song in songs if song.get("collected", False)]            
            if songs:
                self.collected_view.add_webcasts(songs)
 def __load_webcast_query(self):    
     self.__db_query = WebcastQuery()        
     if WebcastDB.isloaded():
         self.__on_db_loaded()
     else:    
         WebcastDB.connect("loaded", lambda obj: self.__on_db_loaded())
 def __load_webcast_query(self):
     self.__db_query = WebcastQuery()
     if WebcastDB.isloaded():
         self.__on_db_loaded()
     else:
         WebcastDB.connect("loaded", lambda obj: self.__on_db_loaded())