Example #1
0
 def _GetCurrentSort( self ) -> ClientMedia.MediaSort:
     
     sort_order = self._sort_order_choice.GetValue()
     
     media_sort = ClientMedia.MediaSort( self._sort_type, sort_order )
     
     return media_sort
    def _GetCurrentSort(self) -> ClientMedia.MediaSort:

        sort_order = self._sort_order_choice.GetValue()

        if sort_order is None:

            sort_order = CC.SORT_ASC

        media_sort = ClientMedia.MediaSort(self._sort_type, sort_order)

        return media_sort
Example #3
0
 def __init__( self, parent, management_controller = None ):
     
     QW.QWidget.__init__( self, parent )
     
     self._management_controller = management_controller
     
     self._sort_type = ( 'system', CC.SORT_FILES_BY_FILESIZE )
     
     self._sort_type_button = ClientGUICommon.BetterButton( self, 'sort', self._SortTypeButtonClick )
     self._sort_order_choice = ClientGUICommon.BetterChoice( self )
     
     type_width = ClientGUIFunctions.ConvertTextToPixelWidth( self._sort_type_button, 14 )
     
     self._sort_type_button.setMinimumWidth( type_width )
     
     asc_width = ClientGUIFunctions.ConvertTextToPixelWidth( self._sort_order_choice, 14 )
     
     self._sort_order_choice.setMinimumWidth( asc_width )
     
     self._sort_order_choice.addItem( '', CC.SORT_ASC )
     
     self._UpdateSortTypeLabel()
     self._UpdateAscLabels()
     
     #
     
     hbox = QP.HBoxLayout( margin = 0 )
     
     QP.AddToLayout( hbox, self._sort_type_button, CC.FLAGS_EXPAND_BOTH_WAYS )
     QP.AddToLayout( hbox, self._sort_order_choice, CC.FLAGS_CENTER_PERPENDICULAR )
     
     self.setLayout( hbox )
     
     HG.client_controller.sub( self, 'ACollectHappened', 'a_collect_happened' )
     HG.client_controller.sub( self, 'BroadcastSort', 'do_page_sort' )
     
     if self._management_controller is not None and self._management_controller.HasVariable( 'media_sort' ):
         
         media_sort = self._management_controller.GetVariable( 'media_sort' )
         
         try:
             
             self.SetSort( media_sort )
             
         except:
             
             default_sort = ClientMedia.MediaSort( ( 'system', CC.SORT_FILES_BY_FILESIZE ), CC.SORT_ASC )
             
             self.SetSort( default_sort )
             
         
     
     self._sort_order_choice.currentIndexChanged.connect( self.EventSortAscChoice )
    def _UpdateSortTypeLabel(self):

        example_sort = ClientMedia.MediaSort(self._sort_type, CC.SORT_ASC)

        self._sort_type_button.setText(example_sort.GetSortTypeString())

        (sort_metatype, sort_data) = self._sort_type

        show_tdt = sort_metatype == 'namespaces' and HG.client_controller.new_options.GetBoolean(
            'advanced_mode')

        if show_tdt:

            if sort_metatype == 'namespaces':

                (namespaces, current_tag_display_type) = sort_data

                tag_display_types = [
                    ClientTags.TAG_DISPLAY_ACTUAL,
                    ClientTags.TAG_DISPLAY_SELECTION_LIST,
                    ClientTags.TAG_DISPLAY_SINGLE_MEDIA
                ]

                choice_tuples = [
                    (ClientTags.tag_display_str_lookup[tag_display_type],
                     tag_display_type)
                    for tag_display_type in tag_display_types
                ]

                self._sort_tag_display_type_button.blockSignals(True)

                self._sort_tag_display_type_button.SetChoiceTuples(
                    choice_tuples)

                self._sort_tag_display_type_button.SetValue(
                    current_tag_display_type)

                self._sort_tag_display_type_button.blockSignals(False)

        self._sort_tag_display_type_button.setVisible(show_tdt)
    def _PopulateSortMenuOrList(self, menu=None):

        sort_types = []

        menu_items_and_sort_types = []

        submetatypes_to_menus = {}

        for system_sort_type in CC.SYSTEM_SORT_TYPES_SORT_CONTROL_SORTED:

            sort_type = ('system', system_sort_type)

            sort_types.append(sort_type)

            if menu is not None:

                submetatype = CC.system_sort_type_submetatype_string_lookup[
                    system_sort_type]

                if submetatype is None:

                    menu_to_add_to = menu

                else:

                    if submetatype not in submetatypes_to_menus:

                        submenu = QW.QMenu(menu)

                        submetatypes_to_menus[submetatype] = submenu

                        ClientGUIMenus.AppendMenu(menu, submenu, submetatype)

                    menu_to_add_to = submetatypes_to_menus[submetatype]

                label = CC.sort_type_basic_string_lookup[system_sort_type]

                menu_item = ClientGUIMenus.AppendMenuItem(
                    menu_to_add_to, label, 'Select this sort type.',
                    self._SetSortTypeFromUser, sort_type)

                menu_items_and_sort_types.append((menu_item, sort_type))

        default_namespace_sorts = HG.client_controller.new_options.GetDefaultNamespaceSorts(
        )

        if menu is not None:

            submenu = QW.QMenu(menu)

            ClientGUIMenus.AppendMenu(menu, submenu, 'namespaces')

        for namespace_sort in default_namespace_sorts:

            sort_type = namespace_sort.sort_type

            sort_types.append(sort_type)

            if menu is not None:

                example_sort = ClientMedia.MediaSort(sort_type, CC.SORT_ASC)

                label = example_sort.GetSortTypeString()

                menu_item = ClientGUIMenus.AppendMenuItem(
                    submenu, label, 'Select this sort type.',
                    self._SetSortTypeFromUser, sort_type)

                menu_items_and_sort_types.append((menu_item, sort_type))

        if menu is not None:

            ClientGUIMenus.AppendMenuItem(submenu, 'custom',
                                          'Set a custom namespace sort',
                                          self._SetCustomNamespaceSortFromUser)

        rating_service_keys = HG.client_controller.services_manager.GetServiceKeys(
            (HC.LOCAL_RATING_LIKE, HC.LOCAL_RATING_NUMERICAL))

        if len(rating_service_keys) > 0:

            if menu is not None:

                submenu = QW.QMenu(menu)

                ClientGUIMenus.AppendMenu(menu, submenu, 'ratings')

            for service_key in rating_service_keys:

                sort_type = ('rating', service_key)

                sort_types.append(sort_type)

                if menu is not None:

                    example_sort = ClientMedia.MediaSort(
                        sort_type, CC.SORT_ASC)

                    label = example_sort.GetSortTypeString()

                    menu_item = ClientGUIMenus.AppendMenuItem(
                        submenu, label, 'Select this sort type.',
                        self._SetSortTypeFromUser, sort_type)

                    menu_items_and_sort_types.append((menu_item, sort_type))

        if menu is not None:

            for (menu_item, sort_choice) in menu_items_and_sort_types:

                if sort_choice == self._sort_type:

                    menu_item.setCheckable(True)
                    menu_item.setChecked(True)

        return sort_types
Example #6
0
 def _UpdateSortTypeLabel( self ):
     
     example_sort = ClientMedia.MediaSort( self._sort_type, CC.SORT_ASC )
     
     self._sort_type_button.setText( example_sort.GetSortTypeString() )