コード例 #1
0
    def __init__(self, data_or_title, list_type, has_separator=False):
        TreeItem.__init__(self)

        self.column_index = 0
        self.side_padding = 5
        self.is_highlight = False
        self.padding_y = 0
        self.padding_x = 8
        self.list_type = list_type

        if isinstance(data_or_title, basestring):
            self.title = data_or_title
            self.data = dict()
        else:
            self.title = data_or_title.get("title", "")
            self.data = data_or_title

        self.data = data_or_title
        self.has_separator = has_separator
        self.separator_height = 4
        self.item_width = CATEGROYLIST_WIDTH
        self.item_height = 26 + self.separator_height if has_separator else 26
        self.init_pixbufs()

        self.song_view = MusicView(view_type=list_type, data=self.data)
        # self.song_view.connect("begin-add-items", self.on_songview_begin_add_items)
        # self.song_view.connect("empty-items", self.on_songview_empty_items)
        self.song_view.set_size_request(PLAYLIST_WIDTH, -1)

        event_manager.connect("login-success", self.on_event_login_success)

        self.login_box = LoginBox(
            lambda w: event_manager.emit("login-dialog-run"))
        self.main_box = gtk.VBox()
コード例 #2
0
    def __init__(self, data_or_title, list_type, has_separator=False):
        TreeItem.__init__(self)
        
        self.column_index = 0
        self.side_padding = 5
        self.is_highlight = False        
        self.padding_y = 0
        self.padding_x = 8
        self.list_type = list_type        
        
        if isinstance(data_or_title, basestring):
            self.title = data_or_title
            self.data = dict()
        else:    
            self.title = data_or_title.get("title", "")
            self.data = data_or_title
            
        self.data = data_or_title
        self.has_separator = has_separator        
        self.separator_height = 4
        self.item_width = CATEGROYLIST_WIDTH
        self.item_height = 26 + self.separator_height if has_separator else 26
        self.init_pixbufs()

        self.song_view = MusicView(view_type=list_type, data=self.data)
        # self.song_view.connect("begin-add-items", self.on_songview_begin_add_items)
        # self.song_view.connect("empty-items", self.on_songview_empty_items)
        self.song_view.set_size_request(PLAYLIST_WIDTH, -1)
        
        event_manager.connect("login-success", self.on_event_login_success)
        
        self.login_box = LoginBox(lambda w: event_manager.emit("login-dialog-run"))
        self.main_box = gtk.VBox()
コード例 #3
0
    def __init__(self, notification, height, create_time):
        '''
        init docs
        '''
        gtk.Window.__init__(self, gtk.WINDOW_POPUP)
        self.notification = notification
        self.create_time = create_time
        self.init_size(height)
        self.init_pixbuf()
        self.init_action_dict()

        self.set_colormap(gtk.gdk.Screen().get_rgba_colormap() or gtk.gdk.Screen().get_rgb_colormap())
        self.set_keep_above(True)
        self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.POINTER_MOTION_MASK | gtk.gdk.POINTER_MOTION_HINT_MASK)

        self.connect("expose-event", self.on_expose_event)
        self.connect("button-press-event", self.on_button_press_event)
        self.connect("motion-notify-event", self.on_motion_notify_event)

        self.animation_time = 200
        self.level = 0
        self.win_x, self.win_y = self._get_position()
        self.pointer_hand_rectangles = []

        self.move(self.win_x, self.win_y)
        self.set_opacity(0)
        self.show_all()
        self.timeout_id = gobject.timeout_add(EXPIRE_TIMEOUT, self.start_destroy_animation)

        event_manager.connect("manual-cancelled", self.move_down)
コード例 #4
0
    def __init__(self):
        super(MusicBrowser, self).__init__()

        # check network status
        self.progress_value = 0
        self.is_reload_flag = False
        self.network_connected_flag = False
        self.update_progress_flag = True
        self.prompt_text = "正在加载数据(%d%%),如果长时间没有响应,点击此处刷新"
        self.loading_box = LoadingBox(self.prompt_text % self.progress_value,
                                      "此处", self.reload_browser)
        self.network_failed_box = NetworkConnectFailed(
            self.check_network_connection)
        self.check_network_connection(auto=True)

        self.webview = BaseWebView(
            "http://musicmini.baidu.com/static/recommend/recommend.html")
        self.js_context = self.webview.js_context
        self.webview.injection_css = self.injection_css
        self.webview.connect("load-progress-changed",
                             self.on_webview_progress_changed)
        self.webview.connect("load-finished", self.on_webview_load_finished)

        self.login_dialog = LoginDialog()
        event_manager.connect("login-dialog-run", self.on_login_dialog_run)
        event_manager.connect("login-success", self.on_login_success)
コード例 #5
0
    def __init__(self):

        import dbus_notify
        self.dbus = dbus_notify.Notifications()
        event_manager.connect("action-invoked", self.on_action_invoked)

        from ui.bubble_manager import BubbleManager
        self.bubble_manager = BubbleManager()

        import gtk
        gtk.main()
コード例 #6
0
 def __init__(self):
     TreeView.__init__(self, enable_drag_drop=False, enable_multiple_select=True)        
     
     self.connect("double-click-item", self.on_music_view_double_click)
     self.connect("press-return", self.on_music_view_press_return)
     
     event_manager.connect("add-songs", self.on_event_add_songs)
     event_manager.connect("play-songs", self.on_event_play_songs)
     
     self.db_file = get_config_file("baidumusic.db")
     self.load()
     
     self.request_thread_id = 0
コード例 #7
0
    def __init__(self):
        super(MusicBrowser, self).__init__()
        
        # check network status
        self.progress_value = 0
        self.is_reload_flag = False        
        self.network_connected_flag = False
        self.update_progress_flag = True
        self.prompt_text = "正在加载数据(%d%%),如果长时间没有响应,点击此处刷新"
        self.loading_box = LoadingBox(self.prompt_text % self.progress_value, "此处", self.reload_browser)
        self.network_failed_box = NetworkConnectFailed(self.check_network_connection)
        self.check_network_connection(auto=True)

        self.webview = BaseWebView("http://musicmini.baidu.com/static/recommend/recommend.html")
        self.js_context = self.webview.js_context        
        self.webview.injection_css = self.injection_css
        self.webview.connect("load-progress-changed", self.on_webview_progress_changed)        
        self.webview.connect("load-finished", self.on_webview_load_finished)        
        
        self.login_dialog = LoginDialog()
        event_manager.connect("login-dialog-run", self.on_login_dialog_run)
        event_manager.connect("login-success", self.on_login_success)
コード例 #8
0
    def __init__(self):
        # Init values
        self.bubble_queue = deque()
        self.incoming_queue = deque()

        self.is_in_animation = False

        # Connect events
        event_manager.connect("notify", self.on_notify)
        event_manager.connect("bubble-destroy", self.on_bubble_destroy)
        event_manager.connect("manual-destroy", self.on_manual_destroy)
コード例 #9
0
    def __init__(self):
        super(MusicBrowser, self).__init__()

        # check network status
        self.progress_value = 0
        self.is_reload_flag = False
        self.network_connected_flag = False
        self.network_failed_box = NetworkConnectFailed(self.check_network_connection)

        self.webview = BaseWebView("http://musicmini.baidu.com/")
        self.js_context = self.webview.js_context
        self.webview.injection_css = self.injection_css

        self.check_network_connection(auto=True)

        self.login_dialog = LoginDialog()
        self.mv_window = MVBrowser()

        event_manager.connect("login-dialog-run", self.on_login_dialog_run)
        event_manager.connect("login-success", self.on_login_success)
        event_manager.connect("play-mv", self.on_play_mv)
コード例 #10
0
    def __init__(self):
        super(MusicBrowser, self).__init__()
        
        # check network status
        self.progress_value = 0
        self.is_reload_flag = False        
        self.network_connected_flag = False
        self.network_failed_box = NetworkConnectFailed(self.check_network_connection)


        self.webview = BaseWebView("http://musicmini.baidu.com/")
        self.js_context = self.webview.js_context        
        self.webview.injection_css = self.injection_css
        
        self.check_network_connection(auto=True)        
        
        self.login_dialog = LoginDialog()
        self.mv_window = MVBrowser()
        
        event_manager.connect("login-dialog-run", self.on_login_dialog_run)
        event_manager.connect("login-success", self.on_login_success)
        event_manager.connect("play-mv", self.on_play_mv)
コード例 #11
0
    def __init__(self):
        super(MusicPlaylist, self).__init__()

        self.listen_db_file = get_cache_file("baidumusic/local_listen.db")
        self.status_db_file = get_cache_file("baidumusic/status.db")

        # Init default items
        self.default_list_item = MusicListItem(
            "试听列表", list_type=MusicListItem.DEFAULT_TYPE)
        self.collect_list_item = MusicListItem(
            "我的收藏", list_type=MusicListItem.COLLECT_TYPE, has_separator=True)

        # Init category list.
        self.category_list = CategoryView(enable_drag_drop=False,
                                          enable_multiple_select=True)
        self.category_list.add_items(
            [self.default_list_item, self.collect_list_item])

        del self.category_list.keymap["Delete"]
        self.category_list.draw_mask = self.draw_category_list_mask
        self.category_list.set_size_request(CATEGROYLIST_WIDTH, -1)
        self.category_list.connect("single-click-item",
                                   self.on_category_single_click)
        self.category_list.connect("right-press-items",
                                   self.on_category_right_press)
        self.category_list.set_highlight_item(self.default_list_item)

        # View box
        self.view_box = gtk.VBox()
        self.view_box.connect("size-allocate", self.on_viewbox_size_allocate)
        self.view_box.add(self.default_list_item.list_widget)

        # bottom_box = gtk.HBox(spacing=45)
        # bottom_box_align = gtk.Alignment()
        # bottom_box_align.set(0.5, 0.5, 1, 1)
        # bottom_box_align.set_padding(2, 2, 28, 0)
        # bottom_box_align.set_size_request(-1, 22)
        # bottom_box_align.add(bottom_box)
        # bottom_box_align.connect("expose_event", self.on_bottombox_expose_event)
        # self.search_button = create_toggle_button("toolbar/search", parent=bottom_box)
        # self.person_button = create_button("combo/artist", parent=bottom_box, no_hover=True)

        main_paned = HPaned(handle_color=app_theme.get_color("panedHandler"),
                            enable_drag=True)
        main_paned.pack1(self.category_list, True, True)
        main_paned.pack2(self.view_box, True, False)

        # events
        event_manager.connect("login-success", self.on_event_login_success)
        event_manager.connect("collect-songs", self.on_event_collect_songs)
        event_manager.connect("add-songs", self.on_event_add_songs)
        event_manager.connect("play-songs", self.on_event_play_songs)
        event_manager.connect("save-listen-lists",
                              self.on_event_save_listen_lists)
        event_manager.connect("save-playlist-status", self.save_status)

        # load playlists.
        self.online_thread_id = 0
        self.new_list_thread_id = 0

        self.load()
        self.load_online_lists()
        self.load_status()

        self.add(main_paned)
コード例 #12
0
    def __init__(self):
        super(MusicPlaylist, self).__init__()

        self.listen_db_file = get_cache_file("baidumusic/local_listen.db")
        self.status_db_file = get_cache_file("baidumusic/status.db")

        # Init default items
        self.default_list_item = MusicListItem("试听列表", list_type=MusicListItem.DEFAULT_TYPE)
        self.collect_list_item = MusicListItem("我的收藏", list_type=MusicListItem.COLLECT_TYPE, has_separator=True)

        # Init category list.
        self.category_list = CategoryView(enable_drag_drop=False, enable_multiple_select=True)
        self.category_list.add_items([self.default_list_item, self.collect_list_item])

        del self.category_list.keymap["Delete"]
        self.category_list.draw_mask = self.draw_category_list_mask
        self.category_list.set_size_request(CATEGROYLIST_WIDTH, -1)
        self.category_list.connect("single-click-item", self.on_category_single_click)
        self.category_list.connect("right-press-items", self.on_category_right_press)
        self.category_list.set_highlight_item(self.default_list_item)

        # View box
        self.view_box = gtk.VBox()
        self.view_box.connect("size-allocate", self.on_viewbox_size_allocate)
        self.view_box.add(self.default_list_item.list_widget)

        # bottom_box = gtk.HBox(spacing=45)
        # bottom_box_align = gtk.Alignment()
        # bottom_box_align.set(0.5, 0.5, 1, 1)
        # bottom_box_align.set_padding(2, 2, 28, 0)
        # bottom_box_align.set_size_request(-1, 22)
        # bottom_box_align.add(bottom_box)
        # bottom_box_align.connect("expose_event", self.on_bottombox_expose_event)
        # self.search_button = create_toggle_button("toolbar/search", parent=bottom_box)
        # self.person_button = create_button("combo/artist", parent=bottom_box, no_hover=True)

        main_paned = HPaned(handle_color=app_theme.get_color("panedHandler"), enable_drag=True)
        main_paned.pack1(self.category_list, True, True)
        main_paned.pack2(self.view_box, True, False)

        # events
        event_manager.connect("login-success", self.on_event_login_success)
        event_manager.connect("collect-songs", self.on_event_collect_songs)
        event_manager.connect("add-songs", self.on_event_add_songs)
        event_manager.connect("play-songs", self.on_event_play_songs)
        event_manager.connect("save-listen-lists", self.on_event_save_listen_lists)
        event_manager.connect("save-playlist-status", self.save_status)

        # load playlists.
        self.online_thread_id = 0
        self.new_list_thread_id = 0

        self.load()
        self.load_online_lists()
        self.load_status()

        self.add(main_paned)