Exemplo n.º 1
0
 def add_to_composition(self, from_widget, to_widget):
     current_items = from_widget.selectedItems()
     for item in current_items:
         contents = item.statusTip(0)
         if not contents:
             return
         contents = ast.literal_eval(contents)
         exists_subfields = self.get_parent_items(to_widget)
         subfield = contents['subfield']
         if subfield in exists_subfields:
             children = exists_subfields[subfield]['child']
             if item.text(0) in children:
                 message = '%s already exists!..' % item.text(0)
                 QtWidgets.QMessageBox.warning(
                     self, 'Warning', message, QtWidgets.QMessageBox.Ok)
                 continue
             subfield_item = exists_subfields[subfield]['widget']
         else:
             subfield_item = swidgets.add_treewidget_item(to_widget, subfield, icon=subfield)
         version_item = swidgets.add_treewidget_item(subfield_item, item.text(0), icon='version')
         self.input_items.setdefault(version_item, item)
         version_item.setStatusTip(0, str(contents))
         brush = QtGui.QBrush(QtGui.QColor(255, 0, 255))
         item.setForeground(0, brush)
         item.setDisabled(True)
         to_widget.setItemExpanded(subfield_item, 1)
     from_widget.clearSelection()
Exemplo n.º 2
0
 def load_captions(self, input_data=None):
     self.treewidget.clear()
     if not input_data:
         input_data = self.spipe.get()
     valid_subfields = self.spipe.pipe_inputs['subfield']['values']
     for caption, contents in input_data.items():
         caption_item = swidgets.add_treewidget_item(self.treewidget,
                                                     caption,
                                                     icon=None)
         self.treewidget.setItemExpanded(caption_item, 1)
         for subfield in valid_subfields:
             if subfield not in contents:
                 continue
             subfield_item = swidgets.add_treewidget_item(caption_item,
                                                          subfield,
                                                          icon=subfield)
             versions = common.set_version_order(contents[subfield].keys())
             for each in versions:
                 cuttrent_tag = contents[subfield][each]['tag']
                 version_item = swidgets.add_treewidget_item(
                     subfield_item, each, icon=cuttrent_tag)
                 more_contents = self.spipe.get_more_data(
                     caption, subfield, each)
                 ver_contents = copy.deepcopy(contents[subfield][each])
                 ver_contents.update(more_contents)
                 version_item.setStatusTip(0, str(ver_contents))
                 # update root item icon with pipe tag(character, prop, etc)
                 swidgets.update_treewidget_item_icon(
                     caption_item, cuttrent_tag)
Exemplo n.º 3
0
 def setup_assets(self):
     self.treewidget_assets.clear()            
     contents = self.spipe.get()
     # print json.dumps(contents, indent=4)
     captions = sorted(contents.keys())
     valid_subfields = self.spipe.get_casting_subfields()
     for caption in captions:
         caption_item = swidgets.add_treewidget_item(
             self.treewidget_assets, caption, icon=caption)
         self.treewidget_assets.setItemExpanded(caption_item, 1)            
         for subfield in valid_subfields:                
             if subfield not in contents[caption]:
                 continue
             subfield_item = swidgets.add_treewidget_item(
                 caption_item, subfield, icon=subfield)
             self.treewidget_assets.setItemExpanded(subfield_item, 1)            
             versions = common.set_version_order(contents[caption][subfield].keys())
             for version in versions:
                 cuttrent_tag = contents[caption][subfield][version]['tag']
                 version_item = swidgets.add_treewidget_item(
                     subfield_item, version, icon=cuttrent_tag, foreground=(192, 0, 0))                
                 more_contents = self.spipe.get_more_data(caption, subfield, version)
                 ver_contents = copy.deepcopy(contents[caption][subfield][version])
                 ver_contents.update(more_contents)
                 version_item.setStatusTip(0, str(ver_contents))
                 # update root item icon with pipe tag(character, prop, etc)
                 swidgets.update_treewidget_item_icon(caption_item, cuttrent_tag)
Exemplo n.º 4
0
 def parent_item(self):
     current_assets = self.find_children_items(self.treewidget_assets)
     current_shots = self.find_children_items(self.treewidget_shots, tag=True)
     if not current_assets:
         QtWidgets.QMessageBox.critical(
             self,
             'critical',
             'please select any item from assets',
             QtWidgets.QMessageBox.Ok
             )
         return             
     if not current_shots:
         QtWidgets.QMessageBox.critical(
             self,
             'critical',
             'please select any item from shots',
             QtWidgets.QMessageBox.Ok
             )
         return        
     
     for current_shot in current_shots:
         for current_asset in current_assets:
             contents = ast.literal_eval(current_asset.statusTip(0))
             location = '%s|%s|%s' % (
                 contents['caption'],
                 contents['subfield'],
                 contents['version']
                 )
             current_item = swidgets.add_treewidget_item(
                 current_shot, location, icon='asset', foreground=None)
             current_item.setStatusTip(0, location)
Exemplo n.º 5
0
    def add_instance(self, treewidget):
        if not treewidget.selectedItems():
            QtWidgets.QMessageBox.warning(
                self, 'warning', 'please select any item', QtWidgets.QMessageBox.Ok) 
            return None
        number_copies, ok = QtWidgets.QInputDialog.getInt(
            self, 'input', 'number of copies:', QtWidgets.QLineEdit.Normal)
        if not ok:
            print '\n#warnings abort the rename'
            return   
        current_item = treewidget.selectedItems()[-1]

        if current_item.parent():
            parent_item = current_item.parent()
        else:
            parent_item = treewidget
            
        icon = 'toplevel'
        if isinstance(parent_item, QtWidgets.QTreeWidgetItem):
            icon = 'sublevel'            
            
        for index in range(number_copies):            
            next_item_name = self.find_next_item_name(parent_item, current_item)
            current_item = swidgets.add_treewidget_item(
                parent_item, next_item_name, icon=icon, foreground=None)   
Exemplo n.º 6
0
 def setup_shots(self):        
     castingsheet_path = self.get_castingsheet_path()
     if not os.path.isfile(self.get_castingsheet_path()):
         return
     casting_data = resource.getInputData(castingsheet_path)
     self.treewidget_shots.clear()
     toplevels = sorted(casting_data.keys())
     for toplevel in toplevels:
         toplevel_item = swidgets.add_treewidget_item(
             self.treewidget_shots, toplevel, icon='toplevel')
         sublevels = sorted(casting_data[toplevel].keys())
         for sublevel in sublevels:
             sublevel_item = swidgets.add_treewidget_item(toplevel_item, sublevel, icon='sublevel') 
             for asset in casting_data[toplevel][sublevel]:
                 asset_item = swidgets.add_treewidget_item(sublevel_item, asset, icon='asset')
                 asset_item.setStatusTip(0, asset)
Exemplo n.º 7
0
 def load_current_caption(self, caption):
     self.treewidget_composition.clear()            
     self.treewidget_input.clear()            
     contents = self.spipe.get_subfields(caption)
     valid_subfields = self.spipe.get_composition_subfields()
     for subfield in valid_subfields:                
         if subfield not in contents:
             continue
         subfield_item = swidgets.add_treewidget_item(self.treewidget_input, subfield, icon=subfield)
         self.treewidget_input.setItemExpanded(subfield_item, 1)            
         versions = common.set_version_order(contents[subfield].keys())
         for version in versions:
             cuttrent_tag = contents[subfield][version]['tag']
             version_item = swidgets.add_treewidget_item(
                 subfield_item, version, icon=cuttrent_tag, foreground=(192, 0, 0))
             more_contents = self.spipe.get_more_data(caption, subfield, version)
             ver_contents = copy.deepcopy(contents[subfield][version])
             ver_contents.update(more_contents)
             version_item.setStatusTip(0, str(ver_contents))
             # update root item icon with pipe tag(character, prop, etc)
             swidgets.update_treewidget_item_icon(subfield_item, cuttrent_tag)
Exemplo n.º 8
0
 def set_current_tag(self):
     current_type = self.combobox_type.currentText()
     current_tag = self.combobox_tag.currentText()
     self.treewidget.clear()
     if current_tag not in self.casting_data[current_type]:
         return
     for asset in self.casting_data[current_type][current_tag]:
         current_item = swidgets.add_treewidget_item(self.treewidget,
                                                     asset,
                                                     icon='asset',
                                                     foreground=None)
         caption, subfield, version = asset.split('|')
         version_data = self.spipe.get_version_data(caption, subfield,
                                                    version)
         current_item.setStatusTip(0, str(version_data))
Exemplo n.º 9
0
 def add_item(self, treewidget):            
     item_name, ok = QtWidgets.QInputDialog.getText(
         self, 'input', 'enter the item name:', QtWidgets.QLineEdit.Normal)
     if not ok:
         print '\n#warnings abort the name'
         return
     parent_item = self.find_parent_item(treewidget)
     if self.has_item_exists(parent_item, item_name):
         QtWidgets.QMessageBox.critical(
             self, 'critical', 'already found <%s>' % item_name, QtWidgets.QMessageBox.Ok)            
         return
     
     icon = 'toplevel'
     if isinstance(parent_item, QtWidgets.QTreeWidgetItem):
         icon = 'sublevel'
     
     current_item = swidgets.add_treewidget_item(
         parent_item, item_name, icon=icon, foreground=None)