def fill_stype_pipeline(self, stype=None, parent_tree_item=None):
        if not parent_tree_item:
            parent_tree_item_add = self.tree_widget.addTopLevelItem
        else:
            parent_tree_item_add = parent_tree_item.addChild

        if stype.pipeline:
            for stype_pipeline in stype.pipeline.values():
                top_item = QtGui.QTreeWidgetItem()
                title = stype_pipeline.info.get('name')
                if not title:
                    title = stype_pipeline.info.get('code')
                top_item.setText(0, title)
                top_item.setData(1, 0, '{0}:{1}'.format(stype_pipeline.info.get('code'), '{pp}'))
                parent_tree_item_add(top_item)

                for key, val in stype_pipeline.pipeline.items():
                    child_item = QtGui.QTreeWidgetItem()
                    child_item.setText(0, key.capitalize())
                    child_item.setCheckState(0, QtCore.Qt.Unchecked)
                    child_item.setData(1, 0, '{0}:{1}'.format(key, '{pr}'))

                    item_color = Qt4Gui.QColor(200, 200, 200)
                    process = stype_pipeline.get_pipeline_process(key)
                    if process:
                        hex_color = process.get('color')
                        color = None
                        if hex_color:
                            color = gf.hex_to_rgb(hex_color, tuple=True)
                        if color:
                            item_color = Qt4Gui.QColor(*color)
                    child_item.setIcon(0, gf.get_icon('circle', color=item_color, scale_factor=0.55))

                    top_item.addChild(child_item)
                    top_item.setExpanded(True)
    def add_new_repo(self):
        current_repo_index = self.repo_combo_box.currentIndex()

        current_repo = self.repo_combo_box.itemData(current_repo_index)
        if current_repo:
            self.repo_combo_box.removeItem(current_repo_index)

            root_item = QtGui.QTreeWidgetItem()
            root_item.setText(0, current_repo['value'][1])
            root_item.setData(0, QtCore.Qt.UserRole, current_repo)

            self.exclude_repo_list.append(current_repo['value'][3])

            self.repos_tree_widget.addTopLevelItem(root_item)
        else:
            for i in range(self.repo_combo_box.count() - 1):
                current_repo = self.repo_combo_box.itemData(i)

                root_item = QtGui.QTreeWidgetItem()
                root_item.setText(0, current_repo['value'][1])
                root_item.setData(0, QtCore.Qt.UserRole, current_repo)

                self.exclude_repo_list.append(current_repo['value'][3])

                self.repos_tree_widget.addTopLevelItem(root_item)

        self.fill_repo_combo_box(self.exclude_repo_list)

        self.check_save_ability()
    def add_item_with_meta_file_object(self, file_object, show_more_info, show_all_files, snapshot_info, type_item, file_icon):

        meta_file_object = file_object.get_meta_file_object()
        child_item = QtGui.QTreeWidgetItem()
        file_name = file_object.get_filename_with_ext()
        if not meta_file_object.is_exists():
            file_name += ' (File Offline)'
        child_item.setText(0, file_name)
        child_item.setData(0, QtCore.Qt.UserRole, file_object)
        if show_more_info:
            child_item.setText(1, gf.sizes(file_object.get_file_size()))
            child_item.setText(2, file_object.get_abs_path())
            child_item.setText(3, snapshot_info.get('repo'))
            child_item.setText(4, file_object.get_base_type())
        if show_all_files:
            type_item.addChild(child_item)
        else:
            self.filesTreeWidget.addTopLevelItem(child_item)

        child_item.setIcon(0, file_icon)
        if len(meta_file_object.get_all_files_list()) > 1:
            # if this is meta with sequence or udims etc...
            for meta_file_name in meta_file_object.get_all_files_list(filenames=True):
                sub_child_item = QtGui.QTreeWidgetItem()
                child_item.addChild(sub_child_item)
                sub_child_item.setText(0, meta_file_name)
                sub_child_item.setData(0, QtCore.Qt.UserRole, file_object)
                sub_child_item.setIcon(0, file_icon)

        child_item.setExpanded(True)
    def add_process_items(self):
        # print(self.sobject.tasks)
        # print(self.sobject.all_process)
        # Top level, process of tasks
        for process in self.sobject.all_process:

            self.top_item = QtGui.QTreeWidgetItem()
            self.top_item.setText(0, process)
            self.top_item_widget = task_item_widget.Ui_taskItemWidget(self.top_item, self)
            self.processTreeWidget.addTopLevelItem(self.top_item)
            self.processTreeWidget.setItemWidget(self.top_item, 0, self.top_item_widget)

            # Second level, contexts of tasks
            if self.sobject.tasks.get(process):
                for context, task in self.sobject.tasks[process].contexts.iteritems():
                    self.child_item = QtGui.QTreeWidgetItem()
                    self.child_item.setText(0, context)
                    self.top_item.addChild(self.child_item)
                    self.top_item.setExpanded(True)

                    # Third level, Tasks items
                    for sub, item in self.sobject.tasks[process].contexts[context].items.iteritems():
                        self.sub_item = QtGui.QTreeWidgetItem()
                        self.sub_item.setData(0, QtCore.Qt.UserRole, item)
                        # self.sub_item.setText(0, sub)
                        self.sub_item_widget = task_item_widget.Ui_taskItemDetailWidget(self)
                        self.child_item.addChild(self.sub_item)
                        self.processTreeWidget.setItemWidget(self.sub_item, 0, self.sub_item_widget)
Beispiel #5
0
    def fill_sctipts_tree_widget(self, async_run=True):

        # getting all the scripts from db
        # if async_run:
        #     scripts_sobjects = yield env_inst.async_task(tc.get_custom_scripts)
        # else:
        scripts_sobjects = tc.get_custom_scripts()

        if scripts_sobjects:
            scripts_sobjects_by_folder = tc.group_sobject_by(
                scripts_sobjects, 'folder')

            # adding scripts to tree widget
            for folder_path, sobjects_list in scripts_sobjects_by_folder.items(
            ):
                paths_list = folder_path.split('/')
                exist_item = gf.check_tree_items_exists(
                    self.scripts_tree_widget, paths_list[0])

                if len(paths_list) > 1:
                    paths_list.reverse()
                    top_item_title = paths_list.pop()

                    if exist_item:
                        gf.recursive_add_items(exist_item, paths_list,
                                               sobjects_list)
                    else:
                        root_item = QtGui.QTreeWidgetItem(
                            self.scripts_tree_widget)
                        root_item.setText(0, top_item_title)
                        root_item.setData(0, 12, top_item_title)
                        root_item.setData(0, QtCore.Qt.UserRole, sobjects_list)
                        root_item.setIcon(
                            0, gf.get_icon('folder', icons_set='mdi'))
                        gf.recursive_add_items(root_item, paths_list,
                                               sobjects_list)
                        self.scripts_tree_widget.addTopLevelItem(root_item)
                else:
                    if exist_item:
                        for sobject in sobjects_list:
                            gf.add_child_items(exist_item, sobject)
                    else:
                        root_item = QtGui.QTreeWidgetItem(
                            self.scripts_tree_widget)
                        root_item.setText(0, folder_path)
                        root_item.setData(0, 12, folder_path)
                        root_item.setData(0, QtCore.Qt.UserRole, sobjects_list)
                        root_item.setIcon(
                            0, gf.get_icon('folder', icons_set='mdi'))
                        self.scripts_tree_widget.addTopLevelItem(root_item)
                        for sobject in sobjects_list:
                            gf.add_child_items(root_item, sobject)
Beispiel #6
0
    def load_local_updates(self):

        sort_list = []
        for update in self.updates:
            update_get = update.get
            item = QtGui.QTreeWidgetItem()
            sort_list.append(
                uf.get_version(sort_sum=True, **update_get('version')))
            # print(uf.get_version(string=True, **update_get('version')))
            # print(uf.get_version(sort_sum=True, **update_get('version')))

            item.setText(
                0,
                uf.get_version(string=True,
                               **update_get('version')).replace('_', '.'))
            item.setText(1, update_get('date'))
            item.setText(2, update_get('changes'))
            item.setText(3, update_get('misc'))
            self.versionsTreeWidget.addTopLevelItem(item)
        if self.updates:
            self.last_version = self.updates[-1].get('version')

        # print(sorted(sort_list))
        self.versionsTreeWidget.sortByColumn(3, QtCore.Qt.DescendingOrder)
        self.versionsTreeWidget.scrollToBottom()
    def add_new_preset(self):

        new_preset_name = self.line_edit.text()

        exclude_list = ['environment_config']
        presets = env_server.get_server_presets()
        exclude_list.extend(presets['presets_list'])

        if new_preset_name and new_preset_name not in exclude_list:
            self.line_edit.setText('')
            root_item = QtGui.QTreeWidgetItem()
            root_item.setText(0, new_preset_name)

            env_server.add_server_preset(new_preset_name)

            self.presets_tree_widget.addTopLevelItem(root_item)
        elif new_preset_name in exclude_list:
            message_box = QtGui.QMessageBox(
                QtGui.QMessageBox.Information,
                'Already exists',
                '<p>Server Preset named <b>{0}</b> already in Presets List.</p><p>Choose another Name.</p>'.format(new_preset_name),
                QtGui.QMessageBox.StandardButton,
                self,
            )
            message_box.exec_()
    def add_items_by_debuglog_dict(self, debuglog_dict):
        for key, val in debuglog_dict.items():
            module_item = QtGui.QTreeWidgetItem()
            # module_item.setText(0, '{1} ({0})'.format(len(val), key))
            module_item.setText(0, '{1} ({0})'.format(len(val), key))
            module_item.setData(0, 12, key)
            module_item.setData(0, QtCore.Qt.UserRole, val)
            exist_item = self.check_if_items_exists(self.treeWidget, key)
            if not exist_item:
                self.treeWidget.addTopLevelItem(module_item)
            else:
                # exist_val = exist_item.data(0, QtCore.Qt.UserRole)
                # extended_val = exist_val + val
                # exist_item.setText(0, '{1} ({0})'.format(len(extended_val), key))
                exist_item.setText(0,  '{1} ({0})'.format(len(val), key))
                exist_item.setData(0, 12, exist_item.data(0, 12))
                exist_item.setData(0, QtCore.Qt.UserRole, val)
                module_item = exist_item

            unique_ids = set()
            for i in val:
                if i[1]['unique_id']:
                    unique_ids.add(i[1]['unique_id'])
            if unique_ids:
                for unique_id in unique_ids:
                    subgroup_list = unique_id.split('/')
                    subgroup_list.reverse()
                    self.recursive_add_items(module_item, subgroup_list)
    def append_items_to_tree(self, files_objects_dict):
        self.fromDropListCheckBox.setChecked(True)

        self.dropTreeWidget.clearSelection()

        icon_provider = QtGui.QFileIconProvider()

        self.progressBar.setVisible(True)

        for item_type, item in files_objects_dict.items():

            for i, file_obj in enumerate(item):
                tree_item = QtGui.QTreeWidgetItem()
                tree_item.setText(0, file_obj.get_pretty_file_name())
                sequence_info_string = []
                frameranges = file_obj.get_sequence_frameranges_string('[]')
                tiles_count = file_obj.get_tiles_count()
                layer = file_obj.get_layer()
                if frameranges:
                    sequence_info_string.append(frameranges)
                if tiles_count:
                    sequence_info_string.append(
                        '{0} Tile(s)'.format(tiles_count))
                if layer:
                    sequence_info_string.append(layer)
                tree_item.setText(1, ' / '.join(sequence_info_string))
                tree_item.setText(2, file_obj.get_base_file_type_pretty_name())
                tree_item.setText(3, file_obj.get_base_file_type())
                tree_item.setText(4, file_obj.get_file_path())

                file_icon = icon_provider.icon(
                    file_obj.get_all_files_list(True))
                tree_item.setIcon(0, file_icon)

                self.dropTreeWidget.addTopLevelItem(tree_item)

                if self.dropTreeWidget.topLevelItemCount(
                ) < 50:  # for performance reasons
                    self.dropTreeWidget.setItemSelected(tree_item, True)
                else:
                    self.dropTreeWidget.clearSelection()

                tree_item.setData(0, QtCore.Qt.UserRole, len(self.tree_items))
                self.tree_items.append(file_obj)

                if i % 10 == 0:
                    QtGui.QApplication.processEvents()

                self.progressBar.setValue(int(i * 100 / len(item)))

        self.progressBar.setValue(100)
        self.dropTreeWidget.resizeColumnToContents(0)
        self.dropTreeWidget.resizeColumnToContents(1)
        self.dropTreeWidget.resizeColumnToContents(2)
        self.dropTreeWidget.resizeColumnToContents(3)
        self.dropTreeWidget.resizeColumnToContents(4)

        self.dropTreeWidget.sortByColumn(0, QtCore.Qt.AscendingOrder)
        self.progressBar.setVisible(False)
Beispiel #10
0
    def get_to_tree(self):
        to_list = cmds.ls(sl=True, dag=True)
        self.to_tree.clear()

        for shape in to_list:
            item = QtGui.QTreeWidgetItem()
            self.to_tree.addTopLevelItem(item)
            item.setText(0, shape)
    def fill_presets_tree(self):

        presets = env_server.get_server_presets()
        if presets:
            for preset in presets['presets_list']:
                root_item = QtGui.QTreeWidgetItem()
                root_item.setText(0, preset)
                self.presets_tree_widget.addTopLevelItem(root_item)
 def create_assets_tree(self):
     self.asstes_tree = tc.query_assets_names()
     for name, value in self.asstes_tree.items():
         self.top_item = QtGui.QTreeWidgetItem()
         if not name:
             name = 'Untyped'
         self.top_item.setText(0, name.capitalize())
         self.assetsTreeWidget.addTopLevelItem(self.top_item)
         for item in value:
             # print(item)
             self.child_item = QtGui.QTreeWidgetItem()
             if item['title']:
                 item_title = item['title'].capitalize()
             else:
                 item_title = 'Unnamed'
             self.child_item.setText(0, item_title)
             self.child_item.setData(0, QtCore.Qt.UserRole, item)
             self.top_item.addChild(self.child_item)
 def fill_versionless_widget(self, paths):
     self.treeWidget_vls.clear()
     for keys, values in paths:
         for i, fl in enumerate(values['versionless']['names']):
             full_path = gf.form_path(self.repo['value'][0] + '/' + values['versionless']['paths'][i])
             item = QtGui.QTreeWidgetItem()
             item.setText(0, u''.join(fl))
             item.setText(1, full_path)
             self.treeWidget_vls.addTopLevelItem(item)
     self.treeWidget_vls.resizeColumnToContents(0)
    def fill_tree_widget(self):
        self.tree_widget.clear()

        for sobject in self.sobjects.values():
            item = QtGui.QTreeWidgetItem()
            item.setText(0, sobject.get_title())
            item.setText(1, sobject.get_search_key())
            self.tree_widget.addTopLevelItem(item)

        self.tree_widget.resizeColumnToContents(0)
Beispiel #15
0
    def fill_builtin_processes(self, parent_tree_item=None):
        if not parent_tree_item:
            parent_tree_item_add = self.tree_widget.addTopLevelItem
        else:
            parent_tree_item_add = parent_tree_item.addChild

        # Builtin processes
        for key in ['publish', 'attachment', 'icon']:
            top_item = QtGui.QTreeWidgetItem()
            top_item.setText(0, key.capitalize() + ' (builtin)')
            top_item.setCheckState(0, QtCore.Qt.Checked)
            top_item.setData(1, 0, '{0}:{1}'.format(key, '{b}'))
            parent_tree_item_add(top_item)
    def fill_users_tree(self):

        # logins = env_inst.logins

        # print logins
        # print env_inst.get_all_login_groups()
        self.usersTreeWidget.clear()

        for login_group in env_inst.get_all_login_groups():
            top_item = QtGui.QTreeWidgetItem()
            top_item.setText(0, login_group.get_pretty_name())
            top_item.setData(0, QtCore.Qt.UserRole, login_group)
            self.usersTreeWidget.addTopLevelItem(top_item)
            group_logins = login_group.get_logins()
            if group_logins:
                for login in group_logins:
                    login_item = QtGui.QTreeWidgetItem()
                    login_item.setText(0, login.get_display_name())
                    login_item.setData(0, QtCore.Qt.UserRole, login)
                    top_item.addChild(login_item)

                top_item.setExpanded(True)
    def fill_children_pipelines_and_processes(self,
                                              stype=None,
                                              parent_tree_item=None,
                                              added_stypes=None):
        if not parent_tree_item:
            parent_tree_item_add = self.tree_widget.addTopLevelItem
        else:
            parent_tree_item_add = parent_tree_item.addChild

        if not added_stypes:
            added_stypes = []

        # Children process
        if stype.schema:
            for child in stype.schema.children:
                child_stype = stype.get_project().stypes.get(child['from'])
                relationship_type = child.get('type')
                if child_stype and relationship_type not in ['many_to_many']:

                    top_item = QtGui.QTreeWidgetItem()
                    top_item.setText(
                        0,
                        child_stype.get_pretty_name() + ' (child)')
                    top_item.setCheckState(0, QtCore.Qt.Checked)
                    top_item.setData(
                        1, 0, '{0}:{1}'.format(child_stype.get_code(), '{s}'))

                    clr = child_stype.get_stype_color(tuple=True)
                    stype_color = None
                    if clr:
                        stype_color = Qt4Gui.QColor(clr[0], clr[1], clr[2],
                                                    255)
                    top_item.setIcon(
                        0,
                        gf.get_icon('view-sequential',
                                    color=stype_color,
                                    icons_set='mdi',
                                    scale_factor=1.1))

                    parent_tree_item_add(top_item)

                    self.fill_builtin_processes(top_item)

                    # breaking recursion
                    if child_stype not in added_stypes:
                        added_stypes.append(child_stype)

                        self.fill_stype_pipeline(child_stype, top_item)

                        self.fill_children_pipelines_and_processes(
                            child_stype, top_item, added_stypes)
    def fill_modules_tree(self):
        if self.isVisible():
            scrollbar = self.debugLogTextEdit.verticalScrollBar()
            scrollbar.setValue(scrollbar.maximum())

            # self.treeWidget.clear()
            if not self.check_if_items_exists(self.treeWidget, 'FULL LOG'):
                self.full_log_item = QtGui.QTreeWidgetItem()
                self.full_log_item.setText(0, ' -- FULL LOG -- ')
                self.full_log_item.setData(0, 12, 'FULL LOG')
                self.treeWidget.addTopLevelItem(self.full_log_item)

            for debuglog_dict in [dl.info_dict, dl.warning_dict, dl.log_dict]:
                self.add_items_by_debuglog_dict(debuglog_dict)
    def add_items_to_stypes_tree(self):
        exclude_list = self.get_ignore_stypes_list()
        self.stypes_tree_widget.clear()

        all_stypes = []

        for stype in env_inst.projects[
                self.project.get_code()].stypes.itervalues():
            all_stypes.append(stype.info)

        grouped = gf.group_dict_by(all_stypes, 'type')

        for type_name, value in grouped.items():
            top_item = QtGui.QTreeWidgetItem()

            if not type_name:
                type_name = 'No Category'
            top_item.setText(0, type_name.capitalize())
            top_item.setCheckState(0, QtCore.Qt.Checked)
            self.stypes_tree_widget.addTopLevelItem(top_item)
            for item in value:
                child_item = QtGui.QTreeWidgetItem()

                stype = env_inst.projects[self.project.get_code()].stypes.get(
                    item.get('code'))

                item_code = stype.get_code()
                child_item.setText(0, stype.get_pretty_name())
                child_item.setText(1, item_code)
                child_item.setData(0, QtCore.Qt.UserRole, item)
                child_item.setCheckState(0, QtCore.Qt.Checked)
                if exclude_list:
                    if item_code in exclude_list:
                        child_item.setCheckState(0, QtCore.Qt.Unchecked)
                top_item.addChild(child_item)

            top_item.setExpanded(True)
    def fill_versions_widget(self, paths):
        self.treeWidget_vers.clear()
        file_names = []
        for keys, values in paths:
            for i, fl in enumerate(values['versioned']['names']):
                full_path = gf.form_path(self.repo['value'][0] + '/' + values['versioned']['paths'][i])
                item = QtGui.QTreeWidgetItem()
                item.setText(0, u''.join(fl))
                file_names.append(u''.join(fl))
                item.setText(1, full_path)
                self.treeWidget_vers.addTopLevelItem(item)

        if self.commit_item:
            self.commit_item.set_new_title(file_names[0])
        self.treeWidget_vers.resizeColumnToContents(0)
Beispiel #21
0
    def fill_table_widget(self, pipeline=None):

        # def get_current_process_info(self):
        #     pipeline = self.get_current_process_pipeline()
        #     process_info = None
        #     if pipeline:
        #         process_info = pipeline.process.get(self.process)
        #
        #     return process_info
        #
        # self.tablesTreeWidget.addTopLevelItem(QtGui.QTreeWidgetItem())

        def recursive_add_sub_processes(ppln):
            for child_process in ppln.get_all_processes_names():
                subprocess_item = QtGui.QTreeWidgetItem()
                subprocess_item.setText(0, child_process)
                process_item.addChild(subprocess_item)

        # getting all possible processes here
        pipeline_code = self.sobject.info.get('pipeline_code')
        if pipeline_code and self.stype.pipeline:
            pipeline = self.stype.pipeline.get(pipeline_code)

        for process in pipeline.get_all_processes_names():
            process_item = QtGui.QTreeWidgetItem()
            process_item.setText(0, process)
            self.tablesTreeWidget.addTopLevelItem(process_item)
            process_info = pipeline.process.get(process)

            if process_info.get('type') == 'hierarchy':
                workflow = self.stype.get_workflow()
                child_pipeline = workflow.get_child_pipeline_by_process_code(
                    pipeline, process)

                recursive_add_sub_processes(child_pipeline)

        # print self.sobject.process.items()

        process = self.sobject.get_process('modeling')
        contexts = process.get_contexts()
        if contexts:
            for key, val in contexts.items():
                # print key, val

                for snapshot in val.get_versions().values():
                    # from pprint import pprint
                    # pprint(snapshot.get_snapshot())
                    self.fill_edit_table_tree_widget(snapshot.get_snapshot())
    def fill_templates(self):

        templates = [
            (True, '$FILENAME'),
            (True, '$FILENAME.$EXT'),
            (True, '$FILENAME.$FRAME.$EXT'),
            (True, '$FILENAME_$UDIM.$EXT'),
            (True, '$FILENAME_$UV.$EXT'),
            (True, '$FILENAME.$FRAME_$UDIM.$EXT'),
            (True, '$FILENAME.$FRAME_$UV.$EXT'),
            (True, '$FILENAME_$UV.$FRAME.$EXT'),
            (False, '$FILENAME_$LAYER.$EXT'),
            (False, '$FILENAME.$LAYER.$EXT'),
            (False, '$FILENAME_$LAYER.$FRAME.$EXT'),
            (False, '$FILENAME.$LAYER.$FRAME.$EXT'),
            (False, '$FILENAME.$LAYER_$UV.$EXT'),
            (False, '$FILENAME.$LAYER.$FRAME_$UV.$EXT'),
            (False, '$FILENAME.$LAYER_$UV.$FRAME.$EXT'),
            (False, '$FILENAME.$LAYER_$UDIM.$EXT'),
            (False, '$FILENAME.$LAYER.$FRAME_$UDIM.$EXT'),
            (False, '$FILENAME.$LAYER_$UDIM.$FRAME.$EXT'),
            (False, '$FILENAME_$LAYER.$FRAME_$UDIM.$EXT'),
        ]
        # templates = [
        #     (True, '$FILENAME'),
        #     (True, '$FILENAME.$EXT'),
        #     (True, '$FILENAMEFrame$FRAME.$EXT'),
        # ]

        for enabled, template in templates:

            tree_item = QtGui.QTreeWidgetItem()
            if enabled:
                tree_item.setCheckState(0, QtCore.Qt.Checked)
                self.current_templates_list.append(template)
            else:
                tree_item.setCheckState(0, QtCore.Qt.Unchecked)
            tree_item.setText(1, template)
            match_template = gf.MatchTemplate([template],
                                              padding=self.get_min_padding())
            tree_item.setText(2, match_template.get_preview_string())
            tree_item.setText(3, match_template.get_type_string())

            if template in ['$FILENAME', '$FILENAME.$EXT']:
                tree_item.setDisabled(True)

            self.templatesTreeWidget.addTopLevelItem(tree_item)
    def fill_repo_tree_widget(self, exlude_list=None):

        self.repos_tree_widget.clear()

        if not exlude_list:
            exlude_list = []

        base_dirs = env_tactic.get_all_base_dirs()

        # Default repo states
        for key, val in base_dirs:
            if val['value'][4] and val['value'][3] in exlude_list:
                root_item = QtGui.QTreeWidgetItem()
                root_item.setText(0, val['value'][1])
                root_item.setData(0, QtCore.Qt.UserRole, val)

                self.repos_tree_widget.addTopLevelItem(root_item)
    def recursive_add_items(self, root_item, subgroup_list):
        item_text = subgroup_list.pop()
        group_item = QtGui.QTreeWidgetItem()
        if self.check_if_items_exists(root_item, item_text):
            group_item = self.check_if_items_exists(root_item, item_text)
        else:
            root_item.addChild(group_item)
            val = root_item.data(0, QtCore.Qt.UserRole)
            if val:
                group_item.setText(0, '{0} ({1})'.format(item_text, len(val)))
            else:
                group_item.setText(0, item_text)
            group_item.setData(0, 12, item_text)
            group_item.setData(0, QtCore.Qt.UserRole, val)

        if subgroup_list:
            return self.recursive_add_items(group_item, subgroup_list)
 def add_item_with_tactic_file_object(self, file_object, show_more_info, show_all_files, snapshot_info, type_item, file_icon):
     child_item = QtGui.QTreeWidgetItem()
     file_name = file_object.get_filename_with_ext()
     if not file_object.is_exists():
         file_name += ' (File Offline)'
     child_item.setText(0, file_name)
     child_item.setData(0, QtCore.Qt.UserRole, file_object)
     if show_more_info:
         child_item.setText(1, gf.sizes(file_object.get_file_size()))
         child_item.setText(2, file_object.get_abs_path())
         child_item.setText(3, snapshot_info.get('repo'))
         child_item.setText(4, file_object.get_base_type())
     if show_all_files:
         type_item.addChild(child_item)
     else:
         self.filesTreeWidget.addTopLevelItem(child_item)
     child_item.setIcon(0, file_icon)
     child_item.setExpanded(True)
    def fill_watch_folders_tree_widget(self):
        self.watchFoldersTreeWidget.clear()

        if self.watch_folders_dict:

            for i, asset_skey in enumerate(
                    self.watch_folders_dict.get('assets_skeys')):
                root_item = QtGui.QTreeWidgetItem()
                root_item.setData(0, QtCore.Qt.UserRole, asset_skey)

                root_item.setText(1,
                                  self.watch_folders_dict['assets_stypes'][i])
                root_item.setText(2,
                                  self.watch_folders_dict['assets_names'][i])
                repos_names = []

                for repo in self.watch_folders_dict['repos'][i]:
                    repos_names.append(
                        env_tactic.get_base_dir(repo)['value'][1])

                root_item.setText(3, ', '.join(repos_names))

                # setting actual watch status
                if self.watch_folders_dict['statuses'][i]:
                    if self.check_for_item_in_watch(asset_skey):
                        root_item.setText(0, 'Watching')
                        self.start_watch_by_skey(asset_skey)
                    else:
                        root_item.setText(0, 'Waiting')
                else:
                    root_item.setText(0, 'Stopped')
                    self.stop_watch_by_skey(asset_skey)

                self.watchFoldersTreeWidget.addTopLevelItem(root_item)

            self.watchFoldersTreeWidget.resizeColumnToContents(0)
            self.watchFoldersTreeWidget.resizeColumnToContents(1)
            self.watchFoldersTreeWidget.resizeColumnToContents(2)
            self.watchFoldersTreeWidget.resizeColumnToContents(3)

        if self.watched_items:
            self.start_watching()
        else:
            self.stop_watching()
Beispiel #27
0
    def get_from_tree(self):

        transforms = bool(self.transforms_checkbox.isChecked())
        shapes = bool(self.shapes_checkbox.isChecked())

        from_list = cmds.ls(sl=True,
                            dag=True,
                            shapes=shapes,
                            transforms=transforms)

        self.from_tree.clear()
        final_from_list = []
        filter_text = self.filter_edit.text()
        if filter_text:
            for node in from_list:
                if node.find(filter_text) != -1:
                    final_from_list.append(node)
        else:
            final_from_list = from_list

        for shape in final_from_list:
            item = QtGui.QTreeWidgetItem()
            self.from_tree.addTopLevelItem(item)
            item.setText(0, shape)
    def fill_files_tree(self):
        self.filesTreeWidget.clear()

        show_more_info = self.showMoreInfoCheckBox.isChecked()
        show_all_files = self.showAllCheckBox.isChecked()
        if not show_more_info:
            self.filesTreeWidget.setHeaderHidden(True)
            self.filesTreeWidget.setColumnCount(1)
        else:
            self.filesTreeWidget.setHeaderHidden(False)
            self.filesTreeWidget.setColumnCount(5)

        icon_provider = QtGui.QFileIconProvider()
        known_icon_ext = {}
        if self.snapshots:

            # Making versionless on top of tree
            if self.item_widget.type == 'snapshot':
                if self.item_widget.is_versionless():
                    versionless_snapshot = self.item_widget.get_snapshot()
                    if versionless_snapshot and versionless_snapshot not in self.snapshots:
                        self.snapshots.insert(0, versionless_snapshot)

            for snapshot in self.snapshots:
                snapshot_info = snapshot.get_snapshot()
                snapshot_files_objects = snapshot.get_files_objects(group_by='type')

                if show_all_files:
                    sn_item = QtGui.QTreeWidgetItem()
                    sn_item.setText(0, 'Snapshot ({0}), Version: {1}'.format(snapshot_info.get('id'), snapshot_info.get('version')))
                    self.filesTreeWidget.addTopLevelItem(sn_item)
                    sn_item.setExpanded(True)

                # Download from http
                for file_type, files_objects in snapshot_files_objects.items():
                    for file_object in files_objects:

                        if gf.get_value_from_config(cfg_controls.get_checkin(), 'getPreviewsThroughHttpCheckbox') == 1:
                            if file_type in ['icon', 'playblast', 'web', 'image']:
                                if file_object.is_exists():
                                    if file_object.get_file_size() != file_object.get_file_size(True):
                                        self.download_web_preview(file_object)
                                else:
                                    self.download_web_preview(file_object)

                preview = []
                if not show_all_files:
                    preview = ['icon', 'playblast', 'web']

                # Adding files to tree
                for i, (file_type, files_objects) in enumerate(snapshot_files_objects.items()):
                    type_item = QtGui.QTreeWidgetItem()
                    if file_type not in preview:
                        if show_all_files:
                            type_item.setText(0, file_type)
                            sn_item.addChild(type_item)
                            type_item.setExpanded(True)

                        for file_object in files_objects:

                            # removing unnecessary calls to icon provider
                            file_ext = file_object.get_ext()
                            if known_icon_ext.get(file_ext):
                                file_icon = known_icon_ext[file_ext]
                            else:
                                file_icon = icon_provider.icon(file_object.get_full_abs_path())
                                known_icon_ext[file_ext] = file_icon

                            # multiple files in snapshot
                            if file_object.is_meta_file_obj():
                                self.add_item_with_meta_file_object(file_object, show_more_info, show_all_files, snapshot_info, type_item, file_icon)
                            else:
                                self.add_item_with_tactic_file_object(file_object, show_more_info, show_all_files, snapshot_info, type_item, file_icon)

            self.filesTreeWidget.resizeColumnToContents(0)
            if show_more_info:
                self.filesTreeWidget.resizeColumnToContents(1)
                self.filesTreeWidget.resizeColumnToContents(2)
                self.filesTreeWidget.resizeColumnToContents(4)
                self.filesTreeWidget.resizeColumnToContents(5)
Beispiel #29
0
    def setupUi(self, editDBTable):
        editDBTable.setObjectName("editDBTable")
        editDBTable.resize(800, 640)
        self.centralwidget = QtGui.QWidget(editDBTable)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtGui.QGridLayout(self.centralwidget)
        self.gridLayout.setContentsMargins(9, 9, 9, 0)
        self.gridLayout.setObjectName("gridLayout")
        self.splitter = QtGui.QSplitter(self.centralwidget)
        self.splitter.setOrientation(QtCore.Qt.Horizontal)
        self.splitter.setObjectName("splitter")
        self.verticalLayoutWidget_2 = QtGui.QWidget(self.splitter)
        self.verticalLayoutWidget_2.setObjectName("verticalLayoutWidget_2")
        self.verticalLayout = QtGui.QVBoxLayout(self.verticalLayoutWidget_2)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.tablesTreeWidget = QtGui.QTreeWidget(self.verticalLayoutWidget_2)
        self.tablesTreeWidget.setMinimumSize(QtCore.QSize(150, 0))
        self.tablesTreeWidget.setStyleSheet(
            "QTreeView::item {\n"
            "    padding: 2px;\n"
            "}\n"
            "\n"
            "QTreeView::item:selected:active{\n"
            "    background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(82, 133, 166, 255), stop:1 rgba(82, 133, 166, 255));\n"
            "    border: 1px solid transparent;\n"
            "}\n"
            "QTreeView::item:selected:!active {\n"
            "    background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(82, 133, 166, 255), stop:1 rgba(82, 133, 166, 255));\n"
            "    border: 1px solid transparent;\n"
            "}\n"
            "")
        self.tablesTreeWidget.setRootIsDecorated(True)
        self.tablesTreeWidget.setHeaderHidden(True)
        self.tablesTreeWidget.setObjectName("tablesTreeWidget")
        item_0 = QtGui.QTreeWidgetItem(self.tablesTreeWidget)
        item_1 = QtGui.QTreeWidgetItem(item_0)
        item_1 = QtGui.QTreeWidgetItem(item_0)
        item_2 = QtGui.QTreeWidgetItem(item_1)
        item_1 = QtGui.QTreeWidgetItem(item_0)
        item_2 = QtGui.QTreeWidgetItem(item_1)
        item_0 = QtGui.QTreeWidgetItem(self.tablesTreeWidget)
        item_1 = QtGui.QTreeWidgetItem(item_0)
        item_2 = QtGui.QTreeWidgetItem(item_1)
        item_2 = QtGui.QTreeWidgetItem(item_1)
        item_3 = QtGui.QTreeWidgetItem(item_2)
        item_2 = QtGui.QTreeWidgetItem(item_1)
        item_3 = QtGui.QTreeWidgetItem(item_2)
        item_1 = QtGui.QTreeWidgetItem(item_0)
        self.verticalLayout.addWidget(self.tablesTreeWidget)
        self.verticalLayoutWidget_3 = QtGui.QWidget(self.splitter)
        self.verticalLayoutWidget_3.setObjectName("verticalLayoutWidget_3")
        self.verticalLayout_2 = QtGui.QVBoxLayout(self.verticalLayoutWidget_3)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.tableEditorLayout = QtGui.QVBoxLayout()
        self.tableEditorLayout.setObjectName("tableEditorLayout")
        self.editTableWidget = QtGui.QTableWidget(self.verticalLayoutWidget_3)
        self.editTableWidget.setObjectName("editTableWidget")
        self.editTableWidget.setColumnCount(0)
        self.editTableWidget.setRowCount(0)
        self.tableEditorLayout.addWidget(self.editTableWidget)
        self.verticalLayout_2.addLayout(self.tableEditorLayout)
        self.horizontalLayout = QtGui.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.savePushButton = QtGui.QPushButton(self.verticalLayoutWidget_3)
        self.savePushButton.setMinimumSize(QtCore.QSize(120, 0))
        self.savePushButton.setObjectName("savePushButton")
        self.horizontalLayout.addWidget(self.savePushButton)
        spacerItem1 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem1)
        self.verticalLayout_2.addLayout(self.horizontalLayout)
        self.verticalLayout_2.setStretch(0, 1)
        self.gridLayout.addWidget(self.splitter, 0, 0, 1, 1)
        editDBTable.setCentralWidget(self.centralwidget)
        self.statusbar = QtGui.QStatusBar(editDBTable)
        self.statusbar.setObjectName("statusbar")
        editDBTable.setStatusBar(self.statusbar)

        self.retranslateUi(editDBTable)
        QtCore.QMetaObject.connectSlotsByName(editDBTable)
 def printparent(self):
     self.child_item = QtGui.QTreeWidgetItem()
     self.child_item.setText(0, 'Child' + str(self.tree_item.childCount()))
     self.tree_item.addChild(self.child_item)
     self.tree_item.setExpanded(True)