def get_current_item_paths(self):
        # TODO REWRITE THIS THING with multiple file in one snapshot in mind

        current_widget = self.search_results_widget.get_current_widget()
        current_tree_widget_item = current_widget.get_current_tree_widget_item()
        file_path = None
        dir_path = None
        all_process = None

        modes = env_mode.modes
        modes.append('main')
        for mode in modes:
            if current_tree_widget_item.files.get(mode):
                main_file = current_tree_widget_item.files[mode][0]
                repo_name = current_tree_widget_item.snapshot.get('repo')
                if repo_name:
                    asset_dir = env_tactic.get_base_dir(repo_name)['value'][0]
                else:
                    asset_dir = env_tactic.get_base_dir('client')['value'][0]
                file_path = gf.form_path(
                    '{0}/{1}/{2}'.format(asset_dir, main_file['relative_dir'], main_file['file_name']))

                # print file_path
                split_path = main_file['relative_dir'].split('/')
                dir_path = gf.form_path('{0}/{1}'.format(asset_dir, '{0}/{1}/{2}'.format(*split_path)))
                all_process = current_tree_widget_item.sobject.all_process

        return file_path, dir_path, all_process
 def build_directory_structure(self):
     import os
     repo = self.repositoryComboBox.itemData(
         self.repositoryComboBox.currentIndex())
     if self.stype.pipeline:
         paths = tc.get_dirs_with_naming(self.sobject.get_search_key())
         for path in paths:
             abs_path = repo['value'][0] + '/' + path
             if not os.path.exists(gf.form_path(abs_path)):
                 os.makedirs(gf.form_path(abs_path))
Esempio n. 3
0
    def create_versions_widget(self):

        self.collapse_wdg_vers = ui_misc_classes.Ui_collapsableWidget(state=True)
        layout_files = QtGui.QVBoxLayout()
        self.collapse_wdg_vers.setLayout(layout_files)
        self.collapse_wdg_vers.setText('Hide Versions Files')
        self.collapse_wdg_vers.setCollapsedText('Show Versions Files')

        # self.files_tree_widget = QtGui.QTreeWidget()
        self.treeWidget_vers = QtGui.QTreeWidget()
        self.treeWidget_vers.setAlternatingRowColors(True)
        self.treeWidget_vers.setSelectionMode(QtGui.QAbstractItemView.NoSelection)
        self.treeWidget_vers.setVerticalScrollMode(QtGui.QAbstractItemView.ScrollPerPixel)
        self.treeWidget_vers.setRootIsDecorated(False)
        self.treeWidget_vers.headerItem().setText(0, "File")
        self.treeWidget_vers.headerItem().setText(1, "Path")
        self.treeWidget_vers.setStyleSheet('QTreeView::item {padding: 2px;}')
        for keys, values in self.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, ''.join(fl))
                item.setText(1, full_path)
                self.treeWidget_vers.addTopLevelItem(item)
            self.treeWidget_vers.setMinimumWidth(self.treeWidget_vers.columnWidth(0) + self.treeWidget_vers.columnWidth(1) + 150)
        self.treeWidget_vers.setMinimumHeight(250)
        self.treeWidget_vers.resizeColumnToContents(0)
        self.treeWidget_vers.resizeColumnToContents(1)

        layout_files.addWidget(self.treeWidget_vers)

        self.main_layout.addWidget(self.collapse_wdg_vers)
    def checkin_from_path(self, search_key, context, description, explicit_paths=None):

        if explicit_paths:
            update_versionless = bool(self.checkin_options_widget.updateVersionlessCheckBox.isChecked())

            repo = self.get_current_repo()

            file_types = []
            file_names = []
            file_paths = []
            exts = []
            file_sizes = []

            for path in explicit_paths:
                file_types.append('main')
                file_names.append(gf.extract_filename(path))
                exts.append(gf.extract_extension(path)[0])
                file_path = gf.form_path(path)
                file_paths.append(file_path)
                file_sizes.append(gf.get_st_size(file_path))

            mode = 'inplace'

            create_icon = False
            if context == 'icon':
                create_icon = True

            return tc.checkin_file(
                search_key=search_key,
                context=context,
                description=description,
                version=None,
                update_versionless=update_versionless,
                file_types=file_types,
                file_names=file_names,
                file_paths=file_paths,
                file_sizes=file_sizes,
                exts=exts,
                keep_file_name=False,
                repo_name=repo,
                mode=mode,
                create_icon=create_icon
            )
    def checkin_from_droplist(self, search_key, context, description):

        selected_items = self.ui_drop_plate.dropTreeWidget.selectedItems()
        if selected_items:
            update_versionless = bool(self.checkin_options_widget.updateVersionlessCheckBox.isChecked())

            repo = self.get_current_repo()

            file_types = []
            file_names = []
            file_paths = []
            exts = []
            file_sizes = []

            for item in selected_items:
                file_types.append('main')
                file_names.append(item.text(0))
                file_path = gf.form_path(item.text(2) + '/' + item.text(0))
                file_paths.append(file_path)
                exts.append(item.data(1, QtCore.Qt.UserRole))
                file_sizes.append(gf.get_st_size(file_path))

            mode = 'inplace'

            return tc.checkin_file(
                search_key=search_key,
                context=context,
                description=description,
                version=None,
                update_versionless=update_versionless,
                file_types=file_types,
                file_names=file_names,
                file_paths=file_paths,
                file_sizes=file_sizes,
                exts=exts,
                keep_file_name=False,
                repo_name=repo,
                mode=mode,
                create_icon=False
            )
    def slide_images(self, value):

        #     print('this is snapshot', self.slide_images.__func__)

        # print self.nested_item.type
        #
        # print self.nested_item.sobject.process['icon']
        # print self.nested_item.sobject.process['icon'].contexts['icon']
        # print self.nested_item.sobject.process['icon'].contexts['icon'].versions.values()[0].snapshot

        # print self.versions_icons

        # print value - 1
        # print dir(self.nested_item.sobject)
        # print self.nested_item.sobject.process['icon'].contexts['icon'].versions
        if self.nested_item.type == 'snapshot' or 'sobject':
            if self.nested_item.type == 'snapshot':
                snapshot_repo = self.nested_item.snapshot.get('repo')
            else:
                snapshot_repo = self.versions_icons.values()[0].snapshot.get('repo')

            if snapshot_repo:
                repo = env_tactic.get_base_dir(snapshot_repo)
                if repo:
                    asset_dir = gf.form_path(repo['value'][0])
                else:
                    asset_dir = gf.form_path(env_tactic.get_base_dir('client')['value'][0])
            else:
                asset_dir = gf.form_path(env_tactic.get_base_dir('client')['value'][0])

            # asset_dir = env_server.rep_dirs[self.nested_item.snapshot.get('repo')][0]
            if not self.web_list:
                self.web_list = self.playblast_list
            if not self.playblast_list:
                self.playblast_list = self.main_list
                self.web_list = self.main_list

            image_path_icon = u'{0}/{1}/{2}'.format(asset_dir,
                                                    self.web_list[value - 1]['relative_dir'],
                                                    self.web_list[value - 1]['file_name'])

            if self.playblast:
                image_path_big = u'{0}/{1}/{2}'.format(asset_dir,
                                                       self.playblast_list[value - 1]['relative_dir'],
                                                       self.playblast_list[value - 1]['file_name'])
            else:
                image_path_big = u'{0}/{1}/{2}'.format(asset_dir,
                                                       self.main_list[value - 1]['relative_dir'],
                                                       self.main_list[value - 1]['file_name'])

            self.preview_image = QtGui.QImage(0, 0, QtGui.QImage.Format_ARGB32)
            if not self.external:
                self.preview_image.load(image_path_big)
            else:
                self.preview_image.load(image_path_icon)

            if not self.preview_image.isNull():
                # TODO TRY to you see yourself what todo...
                try:
                    width = self.parent().playblastGroupBox.width()
                except:
                    width = self.width()

                pix_map = QtGui.QPixmap.fromImage(
                    self.preview_image.scaledToWidth(
                        width-3,
                        QtCore.Qt.SmoothTransformation
                    )
                )
                self.scene.addPixmap(pix_map)
                self.previewGraphicsView.setScene(self.scene)

            return image_path_big