Beispiel #1
0
    def __init__(self, version, entity, asset, **kwargs):
        super(VersionItemWidget, self).__init__(**kwargs)

        self.version = version
        self.entity = entity
        self.asset = asset
        self.layout1 = QtWidgets.QHBoxLayout()
        self.version_label = Label()
        self.version_label.setStyleSheet('font: italic bold 17px Arial')
        self.color_label = QtWidgets.QLabel()
        self.step_label = Label()
        self.step_label.setStyleSheet('font: bold 17px Arial')
        self.layout1.addWidget(self.version_label)
        self.layout1.addStretch()
        self.layout1.addWidget(self.color_label)
        self.layout1.addWidget(self.step_label)
        self.form_layout = QtWidgets.QFormLayout()
        self.form_layout.setLabelAlignment(QtCore.Qt.AlignLeft)
        self.masterLayout = QtWidgets.QVBoxLayout()
        self.masterLayout.addSpacing(5)
        self.masterLayout.addLayout(self.layout1)
        self.masterLayout.addStretch()
        self.masterLayout.addLayout(self.form_layout)
        self.setLayout(self.masterLayout)
        self.masterLayout.setAlignment(QtCore.Qt.AlignTop)
        self.masterLayout.setContentsMargins(10, 0, 0, 5)
        #
        self.version_label.setText(self.version.name)
        self.color_label.setFixedSize(QtCore.QSize(20, 20))
        self.tooltip_text = None
        basset_name = Label('BAsset:')
        # basset_label = Label(self.exporter.basset_url.asset.name)
        basset_label = Label(self.asset.name)
        entity_name = Label('Entity:')
        entity_label = Label(self.entity.get_full_name())
        for label in [basset_name, entity_name, basset_label, entity_label]:
            # label.setStyleSheet('font: 12px Liberation Sans')
            # label.setStyleSheet('font: 12px Bitstream Vera Sans')
            label.setStyleSheet('font: 12px DejaVu Sans')
        self.form_layout.addRow(basset_name, basset_label)
        self.form_layout.addRow(entity_name, entity_label)
        if self.entity.type == 'step':
            self.step_label.setText(self.entity.name)

        style = """
        *{
            background: transparent;
            color: rgb(220, 220, 220);
        }
        QToolTip{
            color:white;
        }
        """
        self.setStyleSheet(style)
        self.is_highlight = False

        self.resize(200, 80)
Beispiel #2
0
    def init_ui(self):
        super(NoteWidget, self).init_ui()

        link_color_red, link_color_green, link_color_blue = get_link_color(
            self.text_color)
        # print link_color_red, link_color_green, link_color_blue
        self.note_content_edit.setText(u"""
        <div style="margin-bottom: 8px"><a href="{url}"><font color=#{color}>{subject}</font></a></div>
        <div>{content}</div>
        """.format(url=self.note_object.url,
                   color='%02x%02x%02x' %
                   (link_color_red, link_color_green, link_color_blue),
                   subject=self.note_subject,
                   content=self.note_content.replace('\n', '<br/>')))

        self.attachments_widget = AttachmentsWidget()

        self.children_layout = QtWidgets.QVBoxLayout()
        self.children_layout.setAlignment(QtCore.Qt.AlignTop)
        self.children_layout.setContentsMargins(20, 0, 0, 0)

        self.reply_button = QtWidgets.QPushButton('Reply', self)
        self.reply_button.setFixedWidth(50)
        self.reply_button.setFixedHeight(22)
        self.reply_button.setVisible(False)
        self.reply_button.setStyleSheet("""
        QPushButton{
            background: transparent;
            border: none;
            border-radius: 3px;
            outline: 0px;
        }
        QPushButton:hover{
            background: rgb(100, 100, 100, 50);
        }
        QPushButton:pressed{
            background: rgb(100, 100, 100, 70);
        }

        """)

        self.reply_layout = QtWidgets.QHBoxLayout()
        self.reply_layout.setAlignment(QtCore.Qt.AlignLeft)
        self.reply_layout.setContentsMargins(50, 0, 0, 0)
        self.reply_edit = None

        self.masterLayout = QtWidgets.QVBoxLayout()
        self.masterLayout.setAlignment(QtCore.Qt.AlignTop)
        self.masterLayout.addLayout(self.current_note_layout)
        self.masterLayout.addWidget(self.attachments_widget)
        # self.masterLayout.addSpacing(10)
        self.masterLayout.addLayout(self.children_layout)
        self.masterLayout.addLayout(self.reply_layout)
        self.masterLayout.addStretch()
        self.setLayout(self.masterLayout)

        self.reply_button.clicked.connect(self.reply_button_clicked)
Beispiel #3
0
 def add_item(self, file_name, local_path):
     count = self.rename_table.rowCount()
     self.rename_table.insertRow(count)
     item = QtWidgets.QTableWidgetItem(file_name)
     item.setToolTip('source name')
     self.rename_table.setItem(count, 1, item)
     rename_item = QtWidgets.QTableWidgetItem('')
     rename_item.setToolTip('alias name')
     self.rename_table.setItem(count, 3, rename_item)
     self.rename_table.setItem(count, 2,
                               QtWidgets.QTableWidgetItem(local_path))
     self.add_button(count, file_name)
Beispiel #4
0
 def create_context_menu(self):
     self.menu = QtWidgets.QMenu(self)
     self.addStepMenu = QtWidgets.QMenu('Add pipeline step', self)
     self.addTypeMenu = QtWidgets.QMenu('Add file type', self)
     for step in PIPELINE_STEPS:
         action = QtWidgets.QAction(step, self.addStepMenu)
         action.triggered.connect(self.add_new_step_to_list)
         self.addStepMenu.addAction(action)
     for type in FILE_TYPES:
         action = QtWidgets.QAction(type, self.addTypeMenu)
         action.triggered.connect(self.add_new_type_to_list)
         self.addTypeMenu.addAction(action)
     self.menu.addMenu(self.addStepMenu)
     self.menu.addMenu(self.addTypeMenu)
Beispiel #5
0
    def __init__(self):
        self.mode_model = QtCore.QStringListModel(["Shot", "Asset"])
        self.upload_type = QtCore.QStringListModel(
            ["Attachment", "Thumbnail", "Reference_qt"])
        self.show_model = QtGui.QStandardItemModel()
        self.path_model = QtWidgets.QDirModel()

        shows = get_approved_shows()
        for show_item in shows.items():
            if show_item[1] in frozenset(['production', 'production2']):
                item = QtGui.QStandardItem(show_item[0])
                item.setData(show_item[1], SG_DATA)
                self.show_model.appendRow(item)
        self.tree_model = QtWidgets.QFileSystemModel()
        self.tree_model.setRootPath("/")
        self.none_tree = QtWidgets.QFileSystemModel()
Beispiel #6
0
 def updat_ui(self, version_item, d_versions):
     for d_version in d_versions:
         d_version_item = QtWidgets.QTreeWidgetItem(d_version[0])
         version_item.addChild(d_version_item)
         if d_version[1].sources:
             d_sources = self.dependency_version(d_version[1])
             self.updat_ui(d_version_item, d_sources)
Beispiel #7
0
    def __init__(self, combine_version=False, parent=None):
        super(GraphicsSceneWidget, self).__init__(parent=parent)

        self.scene = GraphicsScene(combine_version=combine_version,
                                   parent=self)
        # orientation: 0-h 1-v
        self.view = GraphicsView()
        self.view.setScene(self.scene)
        self.setGeometry(100, 100, 800, 600)

        self.view.setRenderHint(QtGui.QPainter.Antialiasing)
        self.view.setViewportUpdateMode(
            QtWidgets.QGraphicsView.FullViewportUpdate)

        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(self.view)
        self.setLayout(layout)

        self.scene.setSceneRect(
            QtCore.QRectF(
                -(self.view.viewport().width() / self.view.current_zoom * 2 +
                  25000) / 2,
                -(self.view.viewport().height() / self.view.current_zoom * 2 +
                  25000) / 2,
                self.view.viewport().width() / self.view.current_zoom * 2 +
                25000,
                self.view.viewport().height() / self.view.current_zoom * 2 +
                25000))

        # self.itemPopulate.connect(self.test, QtCore.Qt.QueuedConnection)
        self.showWidgetSignal.connect(self.show_version_widget,
                                      QtCore.Qt.QueuedConnection)
Beispiel #8
0
def main():
    """main function that's render when the script is render as a standalone script."""
    app = QtWidgets.QApplication(sys.argv)
    from bfx.data.ple.assets import Version
    v = Version.get(id=128875)
    window = TreeWidget(v)
    window.show()

    sys.exit(app.exec_())
Beispiel #9
0
    def create_context_menu(self):
        self.menu = QtWidgets.QMenu(self.scene().parent())
        self.show_detail_action = QtWidgets.QAction("Open in Browser",
                                                    self.menu)
        self.show_detail_action.triggered.connect(
            self._show_details_action_triggered)
        self.open_in_file_action = QtWidgets.QAction("Open in File Browser",
                                                     self.menu)
        self.open_in_file_action.triggered.connect(
            self._open_file_action_triggered)
        self.menu.addAction(self.show_detail_action)
        self.menu.addAction(self.open_in_file_action)

        self.menu.setStyleSheet("""
        QMenu::item:selected{
            background:rgb(100, 100, 150)
        }
        """)
Beispiel #10
0
    def init_ui(self, caption="", directory="", filter=""):
        up_icon = os.path.join(ICON_DIR, "navigation", "svg",
                               "ic_arrow_upward_48px.svg")
        self.go_up_btn.setIcon(get_icon(up_icon))
        list_icon = os.path.join(ICON_DIR, "action", "svg",
                                 "ic_view_module_48px.svg")
        self.list_radio.setIcon(get_icon(list_icon))
        detail_icon = os.path.join(ICON_DIR, "action", "svg",
                                   "ic_view_list_48px.svg")
        self.detail_radio.setIcon(get_icon(detail_icon))

        self.view_mode_btns.addButton(self.list_radio, self.List)
        self.view_mode_btns.addButton(self.detail_radio, self.Detail)
        self.detail_radio.click()

        self.go_to(QtCore.QDir.currentPath())
        self.sequences_ckb.setChecked(True)

        self.horizontalLayout_5.removeItem(self.main_view_hbox)
        self.horizontalLayout_5.removeWidget(self.side_bar)
        self.splitter = QtWidgets.QSplitter()
        self.splitter.setOrientation(QtCore.Qt.Horizontal)
        self.splitter.addWidget(self.side_bar)
        main_view_widget = QtWidgets.QWidget()
        main_view_widget.setContentsMargins(0, 0, 0, 0)
        self.main_view_hbox.setContentsMargins(0, 0, 0, 0)
        main_view_widget.setLayout(self.main_view_hbox)
        self.splitter.addWidget(main_view_widget)
        self.splitter.setStretchFactor(0, 1)
        self.splitter.setStretchFactor(1, 5)
        self.horizontalLayout_5.addWidget(self.splitter)

        if caption:
            self.setWindowTitle(caption)

        if directory and os.path.isdir(directory):
            self.setDirectory(directory)

        if filter:
            self.setNameFilters(filter)
        else:
            self.files_type_cbbox.addItem("all files (*.*)")

        self.init_sidebar()
Beispiel #11
0
    def __init__(self,
                 parent=None,
                 caption="",
                 directory="",
                 filter="",
                 task_context=""):
        """
        Constructs a file dialog with the given parent and caption that initially
        displays the contents of the specified directory.
        The contents of the directory are filtered before being shown in the dialog,
        using a semicolon-separated list of filters specified by each_filter.

        If you want to use multiple filters, separate each one with two semicolons. For example:

        "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"

        :param parent:
        :param caption:
        :param directory:
        :param filter:
        :param task_context:
        """
        super(FileDialog, self).__init__(parent=parent)

        # setup UI -------------------------------------------- #
        ui_file = os.path.join(os.path.dirname(__file__), 'design',
                               'file_dialog.ui')
        uic.loadUi(ui_file, self)
        self.view_mode_btns = QtWidgets.QButtonGroup()

        self._model = QtWidgets.QFileSystemModel()
        self.task_context = task_context

        self.tree_widget.resizeEvent = self._tree_resize_event
        # self.list_view.mouseReleaseEvent = self._list_view_mouse_release_event
        self.list_view.setModel(self.tree_widget.model())

        self.file_mode = self.FilesAndDirectories

        self.create_connect()
        self.init_ui(caption, directory, filter)
Beispiel #12
0
 def add_button(self, index, file_name):
     if self.check_file_name(file_name):
         color = "green"
         icon = PASSED
     else:
         color = 'red'
         icon = FAILED
     check_button = QtWidgets.QPushButton()
     check_button.setFlat(True)
     check_button.setIcon(get_icon(icon, color))
     check_button.clicked.connect(self.check_state)
     self.rename_table.setCellWidget(index, 0, check_button)
Beispiel #13
0
 def __init__(self, model):
     QtWidgets.QWidget.__init__(self)
     self.sg = None
     self.model = model
     self.copy_path = COPY_PATH  # ignore BE001
     self.setWindowTitle("Batch Uploader")
     self.resize(700, 800)
     screen_size = QtWidgets.QDesktopWidget().geometry()
     self.move((screen_size.width() - self.width()) / 2,
               (screen_size.height() - self.height()) / 2)
     self.setAcceptDrops(True)
     self.element_widget()
Beispiel #14
0
    def __init__(self, attachable=True, *args, **kwargs):
        super(AddNoteTextEdit, self).__init__(*args, **kwargs)

        self.attachable = attachable
        attach_icon = get_pixmap(os.path.join(ICON_DIR, 'file', 'svg',
                                              'ic_attachment_24px.svg'),
                                 size=[20, 20])
        self.attachButton = LabelButton(name='Attachment',
                                        icon=attach_icon,
                                        parent=self)
        self.attachButton.setFixedSize(20, 20)
        self.attachButton.setVisible(attachable)
        self.attach_files = []

        self.cancelButton = QtWidgets.QPushButton('Cancel', self)
        self.applyButton = QtWidgets.QPushButton('Apply', self)
        for button in [self.applyButton, self.cancelButton]:
            button.setFixedSize(50, 20)
            button.setStyleSheet("""
            QPushButton{
                border: none;
                border: 1px solid rgb(200, 200, 220);
                border-radius: 2px;
            }
            """)

        self.setStyleSheet("""
        QTextEdit{
            border: 1px solid rgb(200, 200, 220);
            border-radius: 5px;
        }
        """)

        self.setFixedWidth(350)

        self.set_editable(False)

        self.applyButton.clicked.connect(self.apply_clicked)
        self.cancelButton.clicked.connect(self.cancel_clicked)
        self.attachButton.clicked.connect(self.attach_clicked)
Beispiel #15
0
    def __init__(self, *args, **kwargs):
        super(VersionWidget, self).__init__(*args, **kwargs)

        self.masterLayout = QtWidgets.QVBoxLayout()
        self.layout1 = QtWidgets.QHBoxLayout()
        self.versionNumEdit = QtWidgets.QLineEdit()
        self.versionNumEdit.setPlaceholderText('Display Version Number:')
        self.versionNumEdit.setText(str(rv.commands.readSettings('Dailies', 'versionNum', 5)))
        self.versionNumEdit.editingFinished.connect(self.change_version_number)
        self.refreshButton = QtWidgets.QPushButton('Refresh')
        self.refreshButton.clicked.connect(self.refresh_clicked)
        self.layout1.addWidget(self.versionNumEdit)
        self.layout1.addWidget(self.refreshButton)
        self.masterLayout.addLayout(self.layout1)
        self.versionLists = []
        for i in range(10):
            version_list_widget = VersionList()
            self.masterLayout.addWidget(version_list_widget)
            version_list_widget.setVisible(False)
            version_list_widget.itemSelectionChanged.connect(self.item_select_changed)
            version_list_widget.set_version_num(int(self.versionNumEdit.text()))
            self.versionLists.append(version_list_widget)
        self.setLayout(self.masterLayout)
Beispiel #16
0
    def __init__(self, parent=None):
        super(ColorTable, self).__init__(parent)

        # self.setFixedWidth(110)
        self.masterLayout = QtWidgets.QVBoxLayout()

        self.showButton = QtWidgets.QPushButton('hide sheet', self)
        self.showButton.setStyleSheet(
            "color:gray;text-align:right;border:none")

        self.colorLayout = QtWidgets.QFormLayout()
        keys = list(PIPELINE_COLOR._fields)
        keys.remove("other")
        keys.sort()
        # keys.append("other")
        for step in keys:
            color = get_pipeline_color(step)
            color_label = ColorLabel(color)
            self.colorLayout.addRow(step + '  ', color_label)
        for key in SPECIAL_COLOR:
            color = SPECIAL_COLOR[key]
            color_label = ColorLabel(color)
            self.colorLayout.addRow(key + '  ', color_label)
        self.colorLayout.addRow('other' + '  ',
                                ColorLabel(get_pipeline_color('other')))

        self.colorGroup = QtWidgets.QGroupBox()
        self.colorGroup.setLayout(self.colorLayout)

        # self.masterLayout.addWidget(self.showButton)
        self.masterLayout.addSpacing(20)
        self.masterLayout.addWidget(self.colorGroup)

        self.setLayout(self.masterLayout)
        self.setStyleSheet("color:white;background:transparent")

        self.showButton.clicked.connect(self.show_btn_clicked)
Beispiel #17
0
def main():
    """main function that's render when the script is render as a standalone script."""

    app = QtWidgets.QApplication(sys.argv)
    os.environ[ENV.entity_id] = str(315715)
    os.environ[ENV.task_path] = 'test_guzy'

    dialog = FileDialog()
    # dialog.setDirectory("/show/CWT/seq/sc002/shot/sc002_0050/task/plate/workspace/BP/sc002_0050_plate_bp_v001/output/exr/2048x1152")
    # dialog.setNameFilter("Images (*.png *.exr *.jpg);;Text files (*.txt);;XML files (*.xml)")
    # dialog.setSidebarPaths(['/sw/PLE/workspace/guzy/', '/sw/PLE/workspace/chencheng/'])
    dialog.setViewMode(FileDialog.List)
    result = dialog.exec_()
    if result == FileDialog.Accepted:
        print dialog.selected_files
Beispiel #18
0
def main():
    """main function that's render when the script is render as a standalone script."""
    app = QtWidgets.QApplication(sys.argv)
    from bfx.data.ple.assets import Version
    # v = Version.get(id=834342)
    # v = Version.get(id=818022)
    # v = Version.get(id=606882)  # cc_bundle
    # v = Version.get(id=579564)
    # v = Version.get(id=659547)
    v = Version.get(id=898056)
    window = VersionGraph(combine_version=True)
    window.set_populate_depth(1)
    window.set_orientation(0)
    window.show()
    window.show_version(v)

    sys.exit(app.exec_())
Beispiel #19
0
    def __init__(self, seq_data, parent=None):
        super(SeqFilesItem, self).__init__(parent)

        self._seq_data = seq_data
        self._file_info = QtCore.QFileInfo(self._seq_data["files"][0])
        self.path = self._seq_data["filename"]
        self._icon = QtWidgets.QFileIconProvider().icon(self._file_info)

        self.setText(
            0,
            "{name} {first}-{last}".format(name=os.path.basename(self.path),
                                           first=self._seq_data["first_frame"],
                                           last=self._seq_data["last_frame"]))
        self.setText(1, "")
        self.setText(2, "Sequence")
        self.setText(3, "")
        self.setIcon(0, self._icon)
Beispiel #20
0
 def rename_dialog(self, type):
     rename_list = []
     for index in self.rename_table.selectedIndexes():
         if index.column() == 1:
             rename_list.append(
                 str(self.rename_table.item(index.row(), 1).text()))
         else:
             context = self.rename_table.item(index.row(), 3)
             if context:
                 rename_list.append(str(context.text()))
     self.rename = RenameDialog(rename_list, type, parent=self)
     rename_list = self.rename.new_filed
     if rename_list:
         count = 0
         for index in self.rename_table.selectedIndexes():
             if rename_list[count]:
                 item = QtWidgets.QTableWidgetItem(rename_list[count])
                 item.setToolTip('alias name')
                 self.rename_table.setItem(index.row(), 3, item)
             count += 1
Beispiel #21
0
    def init_ui(self):

        self.version_submit_info_layout = QtWidgets.QHBoxLayout()

        self.user_icon_layout = QtWidgets.QVBoxLayout()
        self.user_icon = UserIconLabel()
        self.user_icon_layout.setAlignment(QtCore.Qt.AlignTop)
        self.user_icon_layout.addWidget(self.user_icon)

        self.version_layout = QtWidgets.QVBoxLayout()
        self.version_layout.setAlignment(QtCore.Qt.AlignTop)
        self.version_layout.setSpacing(0)
        self.user_time_layout = QtWidgets.QHBoxLayout()
        self.user_time_layout.setAlignment(QtCore.Qt.AlignLeft)
        self.user_label = QtWidgets.QLabel()
        self.user_time_layout.addWidget(self.user_label)
        self.user_time_layout.addSpacing(15)
        self.user_time_label = QtWidgets.QLabel()
        self.user_time_label.setStyleSheet(
            'color: rgb({}, {}, {}, 125)'.format(
                self.text_color.red(),
                self.text_color.green(),
                self.text_color.blue(),
            ))
        self.user_time_layout.addWidget(self.user_time_label)
        self.version_description_edit = AutoResizeTextEdit()
        self.version_layout.addLayout(self.user_time_layout)
        self.version_layout.addWidget(self.version_description_edit)
        # self.version_layout.addStretch()
        self.version_submit_info_layout.setAlignment(QtCore.Qt.AlignLeft)
        self.version_submit_info_layout.setContentsMargins(4, 0, 0, 0)
        self.version_submit_info_layout.addLayout(self.user_icon_layout)
        self.version_submit_info_layout.addLayout(self.version_layout)

        self.setLayout(self.version_submit_info_layout)

        self.setSizePolicy(
            QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                  QtWidgets.QSizePolicy.Maximum))

        self.user_label.linkActivated.connect(self.open_link)
Beispiel #22
0
    def init_ui(self):
        self.user_icon_layout = QtWidgets.QVBoxLayout()
        self.user_icon = UserIconLabel()
        self.user_icon.set_user(self.note_user)
        self.user_icon_layout.setAlignment(QtCore.Qt.AlignTop)
        self.user_icon_layout.addWidget(self.user_icon)

        self.note_layout = QtWidgets.QVBoxLayout()
        self.note_layout.setAlignment(QtCore.Qt.AlignTop)
        self.note_layout.setSpacing(0)
        self.user_time_layout = QtWidgets.QHBoxLayout()
        self.user_time_layout.setAlignment(QtCore.Qt.AlignLeft)
        self.user_time_layout.addSpacing(4)
        self.note_user_name_label = QtWidgets.QLabel(self.note_user_name)
        self.user_time_layout.addWidget(self.note_user_name_label)
        self.user_time_layout.addSpacing(15)
        note_date_label = QtWidgets.QLabel(
            self.note_date.strftime('%Y-%m-%d %H:%M:%S'))
        note_date_label.setStyleSheet('color: rgb({}, {}, {}, 125)'.format(
            self.text_color.red(),
            self.text_color.green(),
            self.text_color.blue(),
        ))
        self.user_time_layout.addWidget(note_date_label)
        self.note_content_edit = AutoResizeTextEdit()
        self.note_content_edit.setText(
            u'{content}'.format(content=self.note_content))
        self.note_layout.addLayout(self.user_time_layout)
        self.note_layout.addWidget(self.note_content_edit)

        self.current_note_layout = QtWidgets.QHBoxLayout()
        self.current_note_layout.addLayout(self.user_icon_layout)
        self.current_note_layout.addSpacing(5)
        self.current_note_layout.addLayout(self.note_layout)

        self.setSizePolicy(
            QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                  QtWidgets.QSizePolicy.Maximum))
Beispiel #23
0
    def init_ui(self):
        self.checkSelectedButton = QtWidgets.QPushButton()
        self.checkSelectedButton.setToolTip('Check newest of select version')
        self.checkSelectedButton.setIcon(
            get_icon(os.path.join(ICON_DIR, 'action', 'svg',
                                  'ic_find_replace_48px.svg'),
                     color='white'))
        self.checkSelectedButton.setIconSize(QtCore.QSize(25, 25))

        self.checkAllButton = QtWidgets.QPushButton()
        self.checkAllButton.setToolTip('Check newest of all version')
        self.checkAllButton.setIcon(
            get_icon(os.path.join(ICON_DIR, 'action', 'svg',
                                  'ic_autorenew_48px.svg'),
                     color='white'))
        self.checkAllButton.setIconSize(QtCore.QSize(25, 25))

        self.expandAllButton = QtWidgets.QPushButton()
        self.expandAllButton.setToolTip('Expand all versions')
        self.expandAllButton.setIcon(
            get_icon(os.path.join(ICON_DIR, 'action', 'svg',
                                  'ic_swap_horiz_24px.svg'),
                     color='white'))
        self.expandAllButton.setIconSize(QtCore.QSize(25, 25))

        for button in [
                self.checkSelectedButton, self.checkAllButton,
                self.expandAllButton
        ]:
            button.setFixedSize(25, 25)

        self.horizontalLayout.addWidget(self.checkSelectedButton)
        self.horizontalLayout.addWidget(self.checkAllButton)
        self.horizontalLayout.addWidget(self.expandAllButton)

        self.scene_widget = GraphicsSceneWidget(
            combine_version=self.combine_version, parent=self)
        self.scene_widget.itemDoubleClicked.connect(self.__item_double_clicked)
        self.view_layout.addWidget(self.scene_widget)

        self.setStyleSheet("""
        *{
            color:white;
            background-color:rgb(50, 50, 50);
            border:none
        }
        QPushButton:hover{
            background-color:rgb(60, 60, 60);
        }
        QPushButton:pressed{
            background-color:rgb(40, 40, 40);
        }
        QLabel{
            background-color:transparent;
        }
        """)

        self.checkSelectedButton.clicked.connect(
            self.scene_widget.check_selected_version)
        self.checkAllButton.clicked.connect(
            self.scene_widget.check_all_version)
        self.expandAllButton.clicked.connect(self.scene_widget.expand_all)
Beispiel #24
0
        self.version_user_name = self.version_user.name
        self.user_icon.set_user(self.version_user)

        link_color_red, link_color_green, link_color_blue = get_link_color(
            self.text_color)
        self.user_label.setText("""
        <a href="{url}"><font color=#{color}>Version</font></a> by {version_user}
        """.format(
            url=self.version_object.url,
            color='%02x%02x%02x' %
            (link_color_red, link_color_green, link_color_blue),
            version_user=self.version_user_name,
        ))
        self.user_time_label.setText(
            self.version_date.strftime('%Y-%m-%d %H:%M:%S'))
        self.version_description_edit.setText(self.version_description)
        self.version_description_edit.set_size()

    def open_link(self, url):
        webbrowser.open(str(url))


if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    note = Note.get(id=164253)
    window = NoteWidget(note=note, attachments=note.attachments)
    window.show()
    window.resize(500, 400)
    sys.exit(app.exec_())
Beispiel #25
0
 def create_path_item(self, text, path):
     item = QtWidgets.QListWidgetItem()
     item.setText(text)
     item.setIcon(get_icon(icons.FOLDER_BLACK))
     item.path_data = path  # May be dangerous.
     return item
Beispiel #26
0
    def element_widget(self):
        show_label = QtWidgets.QLabel("Show")
        self.path_label = QtWidgets.QLabel("Reference Path")
        mode_label = QtWidgets.QLabel("Mode")
        upload_type = QtWidgets.QLabel("Type")

        self.tree_view = QtWidgets.QTreeView()
        self.tree_view.setModel(self.model.none_tree)
        self.tree_view.setSelectionMode(
            QtWidgets.QAbstractItemView.ExtendedSelection)
        self.tree_view.setSelectionBehavior(
            QtWidgets.QAbstractItemView.SelectItems)
        self.tree_view.setColumnWidth(0, 450)
        self.tree_view.setColumnWidth(1, 80)
        self.tree_view.setColumnWidth(2, 50)
        self.tree_view.setDragEnabled(True)
        self.tree_view.setAcceptDrops(True)
        rename_label = QtWidgets.QLabel("Selected File  ")
        rename_label.setFont(QtGui.QFont('Timer', 13))
        delete_action = QtWidgets.QAction('Delete row', self)
        delete_action.triggered.connect(self.delete_row)
        file_name_item = QtWidgets.QAction('Create alias name', self)
        file_name_item.triggered.connect(
            lambda: self.rename_dialog(type='alias_name'))
        alias_name_item = QtWidgets.QAction('Modify alias name', self)
        alias_name_item.triggered.connect(
            lambda: self.rename_dialog(type='modify_alias_name'))
        self.file_name_menu = QtWidgets.QMenu('Create alias name', self)
        self.file_name_menu.addAction(delete_action)
        self.file_name_menu.addAction(file_name_item)
        self.alias_name_menu = QtWidgets.QMenu('Modify alias name', self)
        self.alias_name_menu.addAction(delete_action)
        self.alias_name_menu.addAction(alias_name_item)

        self.rename_table = CustomTablewidget()
        self.rename_table.customDataChanged.connect(self.rename_command)
        self.rename_table.customContextMenuRequested.connect(
            self.set_item_menu)

        self.uploader_button = QtWidgets.QPushButton("Upload")
        self.uploader_button.setFont(QtGui.QFont('Timer', 13))
        self.uploader_button.setMinimumHeight(40)
        self.uploader_button.setEnabled(False)
        self.uploader_button.clicked.connect(self.upload_button_command)
        self.copy_file_path_label = QtWidgets.QLabel("Copy reference to:")
        self.copy_file_path_edit = QtWidgets.QLineEdit()
        self.copy_file_path_edit.setText("")
        self.show_line_combox = QtWidgets.QComboBox()
        self.show_line_combox.setModel(self.model.show_model)
        self.show_line_combox.currentIndexChanged.connect(
            self.show_line_command)
        self.show_line_combox.setFixedWidth(90)
        self.mode_combo_box = QtWidgets.QComboBox()
        self.mode_combo_box.setModel(self.model.mode_model)
        self.mode_combo_box.currentIndexChanged.connect(
            self.mode_combo_box_command)
        self.path_edit = QtWidgets.QLineEdit()
        self.path_completer = QtWidgets.QCompleter()
        self.path_completer.setModel(self.model.path_model)
        self.path_edit.setCompleter(self.path_completer)
        self.path_edit.returnPressed.connect(self.path_completion)
        self.path_edit.setFixedWidth(300)
        self.path_edit.textChanged.connect(self.set_root_path)

        self.file_select = QtWidgets.QToolButton()
        self.file_select.setIcon(QtGui.QIcon(FILE_ICON))
        self.file_select.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        self.file_select.clicked.connect(self.open_file_path)
        self.upload_type = QtWidgets.QComboBox()
        self.upload_type.setFixedWidth(95)
        self.upload_type.setModel(self.model.upload_type)
        self.upload_type.currentIndexChanged.connect(self.upload_type_command)

        show_mode_hbox = QtWidgets.QHBoxLayout()
        show_hbox = QtWidgets.QHBoxLayout()
        show_hbox.addWidget(show_label)
        show_hbox.addWidget(self.show_line_combox)
        show_hbox.addStretch(1)
        mode_hbox = QtWidgets.QHBoxLayout()
        mode_hbox.addWidget(mode_label)
        mode_hbox.addWidget(self.mode_combo_box)
        mode_hbox.addStretch(1)
        type_hbox = QtWidgets.QHBoxLayout()
        type_hbox.addWidget(upload_type)
        type_hbox.addWidget(self.upload_type)
        type_hbox.addStretch(1)
        show_mode_hbox.addLayout(show_hbox)
        show_mode_hbox.addLayout(mode_hbox)
        show_mode_hbox.addLayout(type_hbox)

        path_file_select_hbox = QtWidgets.QHBoxLayout()
        path_file_select_hbox.addWidget(self.path_label)
        path_file_select_hbox.addWidget(self.path_edit)
        path_file_select_hbox.addWidget(self.file_select)
        show_mode_hbox.addLayout(path_file_select_hbox)

        copy_path_hbox = QtWidgets.QHBoxLayout()
        copy_path_hbox.addWidget(self.copy_file_path_label)
        copy_path_hbox.addWidget(self.copy_file_path_edit)

        vbox = QtWidgets.QVBoxLayout()
        vbox.addLayout(show_mode_hbox)
        vbox.addSpacing(10)
        vbox.addLayout(copy_path_hbox)
        vbox.addSpacing(10)
        vbox.addWidget(self.tree_view)
        vbox.addWidget(rename_label, 0, QtCore.Qt.AlignCenter)
        vbox.addWidget(self.rename_table)
        self.attachment_widget = QtWidgets.QWidget()
        attachment_vbox = QtWidgets.QVBoxLayout()
        self.attachment_widget.setLayout(attachment_vbox)
        self.attachment_widget.setVisible(True)
        vbox.addWidget(self.attachment_widget)
        vbox.addWidget(self.uploader_button)
        self.setLayout(vbox)

        self.show_line_combox.currentIndexChanged.emit(0)
Beispiel #27
0
    def init_ui(self):

        self.version_info_widget = VersionInfoWidget(text_color=self.text_color)
        if self.show_version:
            self.version_info_widget.show()
        else:
            self.version_info_widget.hide()

        self.notes_layout = QtWidgets.QVBoxLayout()
        self.notes_layout.setAlignment(QtCore.Qt.AlignTop)
        self.notes_layout.setContentsMargins(0, 0, 0, 0)

        self.add_note_layout = QtWidgets.QHBoxLayout()

        self.user_icon_layout = QtWidgets.QVBoxLayout()
        self.user_icon = UserIconLabel()
        self.user_icon.set_user(self.current_user)
        self.user_icon_layout.setAlignment(QtCore.Qt.AlignTop)
        self.user_icon_layout.addWidget(self.user_icon)

        self.add_note_edit = AddNoteTextEdit()
        self.add_note_layout.addLayout(self.user_icon_layout)
        self.add_note_layout.addSpacing(8)
        self.add_note_layout.addWidget(self.add_note_edit)
        self.add_note_layout.addStretch()
        self.add_note_layout.setContentsMargins(3, 0, 0, 0)

        self.unsupport_label = QtWidgets.QLabel('unsupported version!')
        self.unsupport_label.setAlignment(QtCore.Qt.AlignCenter)
        self.unsupport_label.setVisible(False)
        self.unsupport_label.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding,
                                                                 QtWidgets.QSizePolicy.MinimumExpanding))

        self.show_all_notes_button = QtWidgets.QPushButton('Show All Notes')
        self.show_all_notes_button.clicked.connect(self.show_all_notes)
        self.show_all_notes_button.setStyleSheet("""
        QPushButton{
            background:transparent;
            border:none;
            color: rgb(%s, %s, %s, 100);
        }
        QPushButton:hover{
            color: rgb(%s, %s, %s, 150);
        }
        
        """ % (self.text_color.red(),
               self.text_color.green(),
               self.text_color.blue(),
               self.text_color.red(),
               self.text_color.green(),
               self.text_color.blue(),
               ))
        self.show_all_notes_button.setCursor(QtCore.Qt.PointingHandCursor)
        self.show_all_notes_button.hide()

        self.masterLayout = QtWidgets.QVBoxLayout()
        self.masterLayout.setAlignment(QtCore.Qt.AlignTop)
        self.masterLayout.addWidget(self.version_info_widget)
        self.masterLayout.addWidget(self.show_all_notes_button)
        self.masterLayout.addLayout(self.notes_layout)
        self.masterLayout.addLayout(self.add_note_layout)
        self.masterLayout.addWidget(self.unsupport_label)
        self.masterLayout.addStretch()
        self.setLayout(self.masterLayout)

        self.user_icon.hide()
        self.add_note_edit.hide()

        self.add_note_edit.applyNote.connect(self.add_new_note)
Beispiel #28
0
 def init_ui(self):
     self.tree_widget_item = QtWidgets.QTreeWidgetItem(
         self.tree_item(self.version))
     d_versions = self.dependency_version(self.version)
     self.updat_ui(self.tree_widget_item, d_versions)
     self.tree_widget.addTopLevelItem(self.tree_widget_item)
Beispiel #29
0
    def __init__(self):
        rv.rvtypes.MinorMode.__init__(self)
        # self.init("pyside_test", [("key-down--s", self.go_to_shot_edit, ""),], None, None)
        self.init("pyside_test", None, None, None)

        self.playing = False

        self.rvSessionQObject = rv.qtutils.sessionWindow()
        self.sessionGLView = rv.qtutils.sessionGLView()
        self.toShotEdit = QtWidgets.QLineEdit(self.sessionGLView)
        self.toShotLabel = QtWidgets.QLabel('Go To Shot:', self.toShotEdit)
        self.toShotLabel.setFixedHeight(self.toShotEdit.height())
        self.toShotEdit.hide()
        self.toShotEdit.setTextMargins(80, 0, 0, 0)
        self.toShotEdit.setStyleSheet("""
        QLineEdit{
            border:none;
        }
        QLabel{
            background:transparent;
        }
        """)
        # self.toShotEdit.editingFinished.connect(self.go_to_shot)

        self.dialog = QtWidgets.QDockWidget('version', self.rvSessionQObject)
        widget1 = QtWidgets.QWidget()
        layout = QtWidgets.QVBoxLayout()
        button1 = QtWidgets.QPushButton('add source')
        button2 = QtWidgets.QPushButton('delete source')
        button3 = QtWidgets.QPushButton('get current frame')
        button4 = QtWidgets.QPushButton('add seq')
        button5 = QtWidgets.QPushButton('delete seq')
        button6 = QtWidgets.QPushButton('add stack')
        button7 = QtWidgets.QPushButton('delete stack')
        button8 = QtWidgets.QPushButton('add source to seq')
        button9 = QtWidgets.QPushButton('del source from seq')
        button10 = QtWidgets.QPushButton('add seq to stack(show)')
        button11 = QtWidgets.QPushButton('del seq from stack(hide)')
        button12 = QtWidgets.QPushButton('replace source')
        button1.clicked.connect(self.add_source)
        button2.clicked.connect(self.delete_source)
        button3.clicked.connect(self.get_frame)
        button4.clicked.connect(self.add_seq)
        button5.clicked.connect(self.del_seq)
        button6.clicked.connect(self.add_stack)
        button7.clicked.connect(self.del_stack)
        button8.clicked.connect(self.add_source_to_seq)
        button9.clicked.connect(self.del_source_from_seq)
        button10.clicked.connect(self.add_seq_to_stack)
        button11.clicked.connect(self.del_seq_from_stack)
        # button12.clicked.connect(self.replace_source)
        layout.addWidget(button1)
        layout.addWidget(button2)
        layout.addWidget(button3)
        layout.addWidget(button4)
        layout.addWidget(button5)
        layout.addWidget(button6)
        layout.addWidget(button7)
        layout.addWidget(button8)
        layout.addWidget(button9)
        layout.addWidget(button10)
        layout.addWidget(button11)
        layout.addWidget(button12)
        widget1.setLayout(layout)

        self.versionWidget = VersionWidget()
        self.versionWidget.itemChanged.connect(self.item_select_changed)
        self.versionWidget.setMinimumWidth(200)

        master_widget = QtWidgets.QWidget()
        master_layout = QtWidgets.QVBoxLayout()
        # master_layout.addWidget(widget1)
        master_layout.addWidget(self.versionWidget)
        master_widget.setLayout(master_layout)

        self.dialog.setWidget(master_widget)
        self.rvSessionQObject.addDockWidget(QtCore.Qt.RightDockWidgetArea, self.dialog)

        self.auto_update = True

        self.dialog2 = QtWidgets.QDockWidget('Timeline', self.rvSessionQObject)
        self.timeline = Timeline()
        # self.timeline.composition.setFrame.connect(self.set_frame)
        self.dialog2.setWidget(self.timeline)
        self.rvSessionQObject.addDockWidget(QtCore.Qt.BottomDockWidgetArea, self.dialog2)

        # rv.commands.bind('pyside_test', 'global', 'frame-changed', self.frame_changed(), '')
        # rv.commands.bind('pyside_test', 'global', 'new-source', self.new_source(), '')
        # rv.commands.bind('pyside_test', 'global', 'source-modified', self.source_modified(), '')
        # rv.commands.bind('pyside_test', 'global', 'media-relocated', self.media_relocated(), '')
        # rv.commands.bind('pyside_test', 'global', 'source-media-set', self.source_media_set(), '')
        # rv.commands.bind('pyside_test', 'global', 'new-node', self.new_node(), '')
        # rv.commands.bind('pyside_test', 'global', 'graph-new-node', self.graph_new_node(), '')
        # rv.commands.bind('pyside_test', 'global', 'new-in-point', self.new_in_point(), '')
        # rv.commands.bind('pyside_test', 'global', 'graph-node-inputs-changed', self.graph_node_inputs_changed(), '')
        # rv.commands.bind('pyside_test', 'global', 'range-changed', self.range_changed(), '')
        # rv.commands.bind('pyside_test', 'global', 'after-graph-view-change', self.after_graph_view_change, '')

        rv.commands.bind('pyside_test', 'global', 'play-start', self.play_start(), '')
        rv.commands.bind('pyside_test', 'global', 'play-stop', self.play_stop(), '')
        rv.commands.bind('pyside_test', 'global', 'frame-changed', self.frame_changed(), '')
        rv.commands.bind('pyside_test', 'global', 'after-graph-view-change', self.view_changed, '')
        rv.commands.bind('pyside_test', 'global', 'graph-node-inputs-changed', self.inputs_changed(), '')
        rv.commands.bind('pyside_test', 'global', 'before-session-read', self.before_read_section(), '')
        rv.commands.bind('pyside_test', 'global', 'after-session-read', self.after_read_section(), '')
        rv.commands.bind('pyside_test', 'global', 'key-down--s', self.go_to_shot_edit, '')
Beispiel #30
0
def main(args):
    app = QtWidgets.QApplication(args)
    model = Model()
    window = MainWindow(model)
    window.show()
    sys.exit(app.exec_())