예제 #1
0
	def extendCompleter(self, sel_layer):
		'''extend the completer with layers'''

		layer_extended = sel_layer
		thisCompleter = QtWidgets.QCompleter(layer_extended)
		thisCompleter.setCompletionMode(QtWidgets.QCompleter.InlineCompletion)
		self.st_expr.setCompleter(thisCompleter)
예제 #2
0
파일: PackageLineEdit.py 프로젝트: rjq/rez
    def __init__(self,
                 context_model=None,
                 parent=None,
                 family_only=False,
                 read_only=False):
        super(PackageLineEdit, self).__init__(parent)
        ContextViewMixin.__init__(self, context_model)
        self.read_only = read_only
        self.family_only = family_only
        self.default_style = None

        pal = self.palette()
        self.normal_font = self.font()
        self.placeholder_font = self.font()
        self.placeholder_font.setItalic(True)
        self.normal_text_color = pal.color(QtGui.QPalette.Text)
        self.placeholder_text_color = pal.color(QtGui.QPalette.Disabled,
                                                QtGui.QPalette.Text)
        if not self.read_only:
            self.setPlaceholderText("enter package")
            self._update_font()

        self.completer = QtWidgets.QCompleter(self)
        self.completer.setCompletionMode(QtWidgets.QCompleter.PopupCompletion)
        self.completions = QtCore.QStringListModel(self.completer)
        self.completer.setModel(self.completions)
        self.setCompleter(self.completer)

        self.textEdited.connect(self._textEdited)
        self.textChanged.connect(self._textChanged)
예제 #3
0
    def __init__(self, pivot_widget, pivot_position=None, words=None,
                 initial_word=None, close_on_find=True, parent=None):
        super(FindPopup, self).__init__(parent)
        self.setFrameStyle(QtWidgets.QFrame.Panel | QtWidgets.QFrame.Raised)
        self.setWindowFlags(QtCore.Qt.Popup)
        self.close_on_find = close_on_find

        self.edit = QtWidgets.QLineEdit()
        self.btn = QtWidgets.QPushButton("Find")
        create_pane([self.edit, self.btn], True, compact=True,
                    compact_spacing=0, parent_widget=self)
        self.edit.setFocus()

        if initial_word:
            self.edit.setText(initial_word)
            self.edit.selectAll()

        self.completer = None
        if words:
            self.completer = QtWidgets.QCompleter(self)
            self.completer.setCompletionMode(QtWidgets.QCompleter.PopupCompletion)
            self.completions = QtCore.QStringListModel(words, self.completer)
            self.completer.setModel(self.completions)
            self.edit.setCompleter(self.completer)

        pt = getattr(pivot_widget.rect(), pivot_position)()
        global_pt = pivot_widget.mapToGlobal(pt)
        self.move(global_pt)

        self.btn.clicked.connect(self._find)
        self.edit.returnPressed.connect(self._find)

        find_shortcut = QtWidgets.QShortcut(QtGui.QKeySequence("Ctrl+F"), self)
        find_shortcut.activated.connect(self._find_again)
예제 #4
0
 def set_funcCompleter(self, ls_func):
     '''sets the function completer
     @ls_func: list of functions to set completer with (list)
     '''
     _thisCompleter = QtWidgets.QCompleter(ls_func)
     self.func.setCompleter(_thisCompleter)
     self.func.setToolTip("list of suggested functions:\n\n- "+'\n- '.join(ls_func))
예제 #5
0
 def autocompletables(self, items):
     self._autocompletables = items
     completer = QtWidgets.QCompleter(self._autocompletables, self)
     completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
     self._editor.setCompleter(completer)
     self._editor.clear()
     self._editor.addItems(items)
     self._editor.setCurrentIndex(-1)
예제 #6
0
 def __init__(self, parent, node_paths=()):
     super(FinderLineEdit, self).__init__(parent)
     completer = QtWidgets.QCompleter(node_paths, parent=self)
     completer.activated.connect(self.focus_node.emit)
     completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
     completer.popup().setStyleSheet(parent.parent().stylesheet)
     self.returnPressed.connect(partial(self.focus_node.emit, None))
     self.setCompleter(completer)
     self.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
예제 #7
0
 def setBlockList(self, blockList):
     comp = QtWidgets.QCompleter(
         filter(lambda x: x not in self.__exclude, blockList))
     comp.popup().setStyleSheet(
         "QListView { font-size : 13px; border: 1px solid #8B8B8B; color: #EDEDED; background-color: #222222; }"
     )
     comp.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
     comp.setModelSorting(QtWidgets.QCompleter.CaseInsensitivelySortedModel)
     self.setCompleter(comp)
예제 #8
0
	def __init__(self):
		super(Core_ExprPrompt, self).__init__()
		# set
		self.ls_layers = ['rgb', 'rgba', 'alpha', 'max(r,g,b)', 'a>0']
		# define widgets
		self.title = QtWidgets.QLabel("<b>ExprPrompt</b>")
		self.st_expr = QtWidgets.QLineEdit()
		self.st_expr.setPlaceholderText('_l: layer (Id06), _ch: channel (red)')
		self.st_expr.returnPressed.connect(self.onPressed)
		self.st_expr.setCompleter(QtWidgets.QCompleter(self.ls_layers))
		#self.st_expr.keyPressEvent(self, event)
		self.st_expr.textChanged.connect(self.onTextChanged)
		self.mu_layers = QtWidgets.QComboBox()
		self.mu_layers.setEnabled(False)
		self.ck_ch_r = QtWidgets.QCheckBox('r')
		self.ck_ch_g = QtWidgets.QCheckBox('g')
		self.ck_ch_b = QtWidgets.QCheckBox('b')
		self.ck_ch_a = QtWidgets.QCheckBox('alpha')
		self.bt_ch_all = QtWidgets.QPushButton('all')
		self.bt_ch_all.clicked.connect(self.setAllChannel)
		self.ck_clamp = QtWidgets.QCheckBox('clamp')
		self.ck_invert = QtWidgets.QCheckBox('invert')
		self.bt_set = QtWidgets.QPushButton('Set!')
		self.bt_set.clicked.connect(self.onPressed)

		self.ls_ch_layer = [self.ck_ch_r, self.ck_ch_g, self.ck_ch_b, self.ck_ch_a]
		self.ls_wrapper = [self.ck_clamp, self.ck_invert]
		# define layouts
		self.layout_master = QtWidgets.QVBoxLayout()
		self.layout_main = QtWidgets.QHBoxLayout()
		self.layout_channels = QtWidgets.QHBoxLayout()
		self.layout_wrappers = QtWidgets.QHBoxLayout()
		self.layout_wrappers.setAlignment(QtCore.Qt.AlignLeft)
		# add widgets and set layouts
		self.setMaximumWidth(200)
		self.mu_layers.setMaximumWidth(70)
		for m in [self.st_expr, self.mu_layers]:
			self.layout_main.addWidget(m)
		for c in [self.ck_ch_r, self.ck_ch_g, self.ck_ch_b,self.ck_ch_a, self.bt_ch_all]:
			self.layout_channels.addWidget(c)
		for w in [self.ck_clamp, self.ck_invert]:
			self.layout_wrappers.addWidget(w)
		self.layout_master.addWidget(self.title)
		self.layout_master.addLayout(self.layout_main)
		self.layout_master.addLayout(self.layout_channels)
		self.layout_master.addLayout(self.layout_wrappers)
		self.layout_master.addWidget(self.bt_set)
		self.setLayout(self.layout_master)


		#self.resize(400,240)
		self.setWindowTitle("ExprPrompte")
		self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.Popup)

		self.setDefault()
예제 #9
0
    def __init__(self):
        super(Core_SequenceLoader, self).__init__()

        # lgtPath
        self.lgtPath_label = QtWidgets.QLabel('lighting dir: ')
        self.lgtPath = QtWidgets.QLineEdit()
        self.lgtPath.setMinimumWidth(500)
        self.lgtPath.editingFinished.connect(self.getVersions)
        # lgtPath_btn
        self.lgtPath_btn = QtWidgets.QPushButton('Browse')
        self.lgtPath_btn.clicked.connect(self.browse)
        # renderVersion
        self.renderVersion_label = QtWidgets.QLabel("lighting ver: ")
        self.renderVersion_mu = QtWidgets.QComboBox()
        self.renderVersion_mu.setMinimumWidth(250)
        self.renderVersion_mu.setToolTip(
            "look for dir with version number in name")
        # renderVersion_Filter
        self.renderVersion_filter_label = QtWidgets.QLabel("Filter: ")
        self.renderVersion_filter = QtWidgets.QLineEdit()
        _tip = "i.e. lgt, lookdev, anim. Seperated by commas"
        self.renderVersion_filter.setPlaceholderText(_tip)
        self.renderVersion_filter.setToolTip(_tip)
        self.renderVersion_filter.setMinimumWidth(150)
        self.renderVersion_filter.editingFinished.connect(self.getVersions)
        _completer = QtWidgets.QCompleter(['lgt', 'lookdev', 'anim'])
        self.renderVersion_filter.setCompleter(_completer)
        # load_btn
        self.load_btn = QtWidgets.QPushButton("Load Sequence")
        self.load_btn.clicked.connect(self.SequenceLoader)

        self.file_layout = QtWidgets.QHBoxLayout()
        self.master_layout = QtWidgets.QVBoxLayout()
        self.combobox_layout = QtWidgets.QHBoxLayout()

        self.file_layout.addWidget(self.lgtPath_label)
        self.file_layout.addWidget(self.lgtPath)
        self.file_layout.addWidget(self.lgtPath_btn)
        self.combobox_layout.addWidget(self.renderVersion_label)
        self.combobox_layout.addWidget(self.renderVersion_mu)
        self.combobox_layout.addWidget(self.renderVersion_filter_label)
        self.combobox_layout.addWidget(self.renderVersion_filter)
        self.combobox_layout.addStretch(1)

        self.master_layout.addLayout(self.file_layout)
        self.master_layout.addLayout(self.combobox_layout)
        self.master_layout.addWidget(self.load_btn)
        self.master_layout.addStretch(1)
        self.setLayout(self.master_layout)
        self.setWindowTitle("Sequence Loader")

        self.setDefault()
예제 #10
0
 def __init__(self, parent=None):
     super(SearchLineEdit, self).__init__(parent)
     completer = QtWidgets.QCompleter(parent=self)
     model = QtWidgets.QFileSystemModel(completer)
     model.setNameFilters(['*.nxt', '*.nxtb'])
     model.setNameFilterDisables(False)
     completer.setModel(model)
     completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
     completer.setCompletionMode(completer.UnfilteredPopupCompletion)
     completer.popup().setStyleSheet(parent.parent().stylesheet)
     self.returnPressed.connect(self.file_chosen.emit)
     self.setCompleter(completer)
     self.setFocusPolicy(QtCore.Qt.FocusPolicy.StrongFocus)
예제 #11
0
    def setBlockList(self, blockList):
        comp = QtWidgets.QCompleter(
            filter(lambda x: x not in self.__exclude, blockList))
        comp.popup().setStyleSheet(
            "QListView { font-size : 13px; border: 1px solid #8B8B8B; color: #EDEDED; background-color: #222222; }"
        )
        comp.setCaseSensitivity(QtCore.Qt.CaseInsensitive)

        # This is available in Qt 5.2 and later
        if hasattr(comp, "setFilterMode"):
            comp.setFilterMode(QtCore.Qt.MatchContains)

        comp.setModelSorting(QtWidgets.QCompleter.CaseInsensitivelySortedModel)
        self.setCompleter(comp)
예제 #12
0
 def showEvent(self, event):
     # get all company
     self._company_dict = {}
     _companys = zfused_api.zFused.get("company")
     _company_names = []
     for _company in _companys:
         self._company_dict[_company.get("Name")] = _company.get("Id")
         _company_names.append(_company.get("Name"))
     self._company_completer = QtWidgets.QCompleter(_company_names)
     print(self._company_completer)
     # self._company_completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
     self._company_completer.setFilterMode(QtCore.Qt.MatchContains)
     self._company_completer.setCompletionMode(
         QtWidgets.QCompleter.PopupCompletion)
     self.company_lineedit.setCompleter(self._company_completer)
예제 #13
0
    def __init__(self, file_filter=("*.nxt", "*.nxtb"), caption=''):
        super(NxtFileDialog, self).__init__()
        self.filter = file_filter
        self.filter_string = " ".join(self.filter)
        self.dir = ''
        self._file_path = ''
        self.mode = 'open'
        self.caption = caption
        self.setWindowTitle("{} nxt layer".format(self.mode))
        self.modes = {'open': self._open,
                      'save': self._save}
        self.vb_main_layout = QtWidgets.QVBoxLayout()
        self.setLayout(self.vb_main_layout)

        self.hb_file_browse = QtWidgets.QHBoxLayout()
        self.vb_main_layout.addLayout(self.hb_file_browse)
        # File path line edit
        self.l_file_path = QtWidgets.QLineEdit()
        self.l_file_path.setText(self.get_base_path(with_file_name=False))
        self.hb_file_browse.addWidget(self.l_file_path)
        # TODO: Get the completer to complete relative paths based on the
        #  self.dir path. Right now it starts completions from the file
        #  system root.
        self.fsm_file = QtWidgets.QFileSystemModel()
        self.fsm_file.setFilter(QtCore.QDir.AllDirs |
                                QtCore.QDir.NoDotAndDotDot |
                                QtCore.QDir.Files)
        self.fsm_file.setNameFilters(self.filter)
        self.fsm_file.setNameFilterDisables(False)
        self.fsm_file.setRootPath(self.dir)
        self.completer = QtWidgets.QCompleter()
        self.completer.setModel(self.fsm_file)
        self.idx = QtCore.QModelIndex(self.fsm_file.index(self.dir))
        self.l_file_path.setCompleter(self.completer)
        # Default file browser
        self.btn_browse = QtWidgets.QPushButton('Browse')
        self.btn_browse.clicked.connect(self.browse)
        self.hb_file_browse.addWidget(self.btn_browse)

        self.hb_options = QtWidgets.QHBoxLayout()
        self.vb_main_layout.addLayout(self.hb_options)
        self.pb_rel_path = QtWidgets.QPushButton('Convert to relative path')
        self.pb_rel_path.clicked.connect(self.convert_path)
        self.hb_options.addWidget(self.pb_rel_path)
        self.btn_accept = QtWidgets.QPushButton(self.mode.capitalize())
        self.btn_accept.setDefault(True)
        self.btn_accept.clicked.connect(self.accept)
        self.hb_options.addWidget(self.btn_accept)
예제 #14
0
    def __init__(self, core, thisRow, ls_shots, ls_tasks):
        '''
		core: QTableWidget
		thisRow: index for the new row
		'''
        super(DataAdd, self).__init__()

        self.core = core
        self.thisRow = thisRow
        self.ls_shots = ls_shots
        self.curShot = getShot()
        self.ls_tasks = ls_tasks if len(ls_tasks) > 0 else [
            'comp', 'mastercomp', 'precomp-'
        ]

        self.taskCompleter = QtWidgets.QCompleter(self.ls_tasks)
        self.taskCompleter.setCompletionMode(
            QtWidgets.QCompleter.InlineCompletion)

        self.st_shot = QtWidgets.QComboBox()
        # self.st_shot.setPlaceholderText('Shot (ie. str050_1010)')
        # self.st_shot.setCompleter(QtWidgets.QCompleter(ls_shots))
        self.st_shot.addItems(self.ls_shots)
        self.st_shot.setEditable(True)
        self.st_shot.setCurrentIndex(self.st_shot.findText(self.curShot))
        self.st_task = QtWidgets.QLineEdit()
        self.st_task.setPlaceholderText('Task (ie. mastercomp)')
        self.st_task.setCompleter(self.taskCompleter)
        self.no_version = VersionBox()
        self.no_version.setValue(1)
        self.bx_status = QtWidgets.QComboBox()
        self.bx_status.addItems(self.core.ls_status)
        self.st_comments = QtWidgets.QLineEdit()
        self.bt_add = QtWidgets.QPushButton('ADD')
        self.bt_add.clicked.connect(self.onClicked)

        self.layout_master = QtWidgets.QVBoxLayout()
        self.layout_version = QtWidgets.QHBoxLayout()
        self.layout_version.addWidget(self.st_shot)
        self.layout_version.addWidget(self.st_task)
        self.layout_version.addWidget(self.no_version)
        self.layout_version.addWidget(self.bx_status)
        self.layout_master.addLayout(self.layout_version)
        self.layout_master.addWidget(self.st_comments)
        self.layout_master.addWidget(self.bt_add)
        self.setLayout(self.layout_master)
        self.setWindowTitle("Add a version: entry %s" % (self.thisRow + 1))
예제 #15
0
    def set_search_completer(self):
        """Set the QCompleter for the search edit.
        TODO Check if there is a way to update the contents of completer
        rather recreate new one every time. seems costly
        """
        folders = self.collected_dir_info.keys()
        base_folders = []
        for x in folders:
            tmp = os.path.abspath(x).replace(self.preset_share_dir, "")
            tmp = tmp.strip("\\")
            base_folders.append(tmp)

        self.completer = QtWidgets.QCompleter(base_folders)
        self.completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
        self.completer.setFilterMode(QtCore.Qt.MatchContains)
        self.completer.activated.connect(self.filter_view)
        self.search_widget.setCompleter(self.completer)
예제 #16
0
    def __init__(self, parent=None):
        super(ComboBoxCompleter, self).__init__(parent)

        self.setFocusPolicy(QtCore.Qt.StrongFocus)
        self.setEditable(True)
        self.completer = QtWidgets.QCompleter(self)

        # always show all completions
        self.completer.setCompletionMode(QtWidgets.QCompleter.UnfilteredPopupCompletion)
        self.pFilterModel = QtWidgets.QSortFilterProxyModel(self)
        self.pFilterModel.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive)

        self.completer.setPopup(self.view())

        self.setCompleter(self.completer)

        self.lineEdit().textEdited[unicode].connect(self.pFilterModel.setFilterFixedString)
        self.completer.activated.connect(self.setTextIfCompleterIsClicked)
예제 #17
0
    def __init__( self,  parent = None):
        super( ExtendedCombo, self ).__init__( parent )

        self.setFocusPolicy( QtCore.Qt.StrongFocus )
        self.setEditable( True )
        self.completer = QtWidgets.QCompleter( self )

        # always show all completions
        self.completer.setCompletionMode( QtWidgets.QCompleter.UnfilteredPopupCompletion )
        self.pFilterModel = QtCore.QSortFilterProxyModel( self )
        self.pFilterModel.setFilterCaseSensitivity( QtCore.Qt.CaseInsensitive )
        self.pFilterModel.setSourceModel( QtGui.QStandardItemModel() )

        self.completer.setPopup( self.view() )

        self.setCompleter( self.completer )

        edit = self.lineEdit()
        # NOTE 取消按 Enter 生成新 item 的功能
        edit.returnPressed.disconnect()
        edit.textEdited[unicode].connect( self.pFilterModel.setFilterFixedString )
        self.completer.activated.connect(self.setTextIfCompleterIsClicked)
예제 #18
0
    def __init__(self, *args, **kwargs):
        super(Launcher, self).__init__(*args, **kwargs)

        self.completer = QtWidgets.QCompleter()
        self.model = QtCore.QStringListModel()
        self.completer.setModel(self.model)
        self.completer.setFilterMode(QtCore.Qt.MatchContains)
        self.completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
        self.Search_LE.setCompleter(self.completer)
        
        # # TODO 多进程加载 引擎 路径
        # self.asset_thread = CollectAssetThread()
        # self.asset_thread.bind(self.handle_asset)
        # self.asset_thread.start()

        # TODO 多线程加载 Python 链接
        self.cls_thread = CollectUnrealDirThread()
        self.cls_thread.bind(self.order_class)
        self.cls_thread.start()

        self.state.loading_vis = True
        self.get_asset_paths()
예제 #19
0
    def __init__(self, path="", filter="", selectedFilter="", parent=None):
        """ Initialize the panel.
        
        :Parameters:
            path : `str`
                default path to look in when creating or choosing the file.
            filter : `list`
                A list of strings denoting filename match filters. These strings
                are displayed in a user-selectable combobox. When selected,
                the file list is filtered by the pattern
                The format must follow:
                ["Descriptive text (pattern1  pattern2  ...)", ...]
                The glob matching pattern is in parens, and the entire string is
                displayed for the user.
            selectedFilter : `str`
                Set the current filename filter. Needs to be one of the entries
                specified in the "filter" parameter.
            parent : `QObject`
                Parent for this widget.
        """
        super(IncludePanel, self).__init__(parent)

        # Setup UI.
        self.lookInCombo = QtWidgets.QComboBox(self)
        self.toParentButton = QtWidgets.QToolButton(self)
        self.buttonHome = QtWidgets.QToolButton(self)
        self.buttonOriginal = QtWidgets.QPushButton("Original", self)
        self.fileNameEdit = QtWidgets.QLineEdit(self)
        self.fileNameLabel = QtWidgets.QLabel("File:", self)
        self.fileTypeCombo = QtWidgets.QComboBox(self)
        self.fileTypeLabel = QtWidgets.QLabel("Type:", self)
        self.stackedWidget = QtWidgets.QStackedWidget(self)
        self.listView = QtWidgets.QListView(self)
        self.fileTypeLabelFiller = QtWidgets.QLabel(self)
        self.fileTypeComboFiller = QtWidgets.QLabel(self)
        self.buttonOpen = QtWidgets.QPushButton(
            QIcon.fromTheme("document-open"), "Open", self)

        # Item settings.
        self.buttonHome.setIcon(self.style().standardIcon(
            QtWidgets.QStyle.SP_DirHomeIcon))
        self.buttonHome.setToolTip("User's home directory")
        self.buttonHome.setAutoRaise(True)
        self.buttonOriginal.setToolTip("Original directory")
        self.lookInCombo.setMinimumSize(50, 0)
        self.toParentButton.setIcon(self.style().standardIcon(
            QtWidgets.QStyle.SP_FileDialogToParent))
        self.toParentButton.setAutoRaise(True)
        self.toParentButton.setToolTip("Parent directory")
        self.listView.setDragEnabled(True)
        self.fileNameLabel.setToolTip("Selected file or directory")
        self.fileTypeLabel.setBuddy(self.fileTypeCombo)
        self.fileTypeLabel.setToolTip("File type filter")
        self.buttonOpen.setToolTip("Open selected file")

        # Focus policies.
        self.lookInCombo.setFocusPolicy(QtCore.Qt.NoFocus)
        self.toParentButton.setFocusPolicy(QtCore.Qt.NoFocus)
        self.buttonHome.setFocusPolicy(QtCore.Qt.NoFocus)
        self.buttonOriginal.setFocusPolicy(QtCore.Qt.NoFocus)
        self.buttonOpen.setFocusPolicy(QtCore.Qt.NoFocus)

        # Item size policies.
        self.lookInCombo.setSizePolicy(QtWidgets.QSizePolicy.Ignored,
                                       QtWidgets.QSizePolicy.Fixed)
        self.toParentButton.setSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                          QtWidgets.QSizePolicy.Fixed)
        self.buttonHome.setSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                      QtWidgets.QSizePolicy.Fixed)
        self.buttonOriginal.setSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                          QtWidgets.QSizePolicy.Fixed)
        self.fileNameLabel.setSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                         QtWidgets.QSizePolicy.Fixed)
        self.fileTypeCombo.setSizePolicy(QtWidgets.QSizePolicy.Ignored,
                                         QtWidgets.QSizePolicy.Fixed)
        self.fileTypeLabel.setSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                         QtWidgets.QSizePolicy.Fixed)
        self.buttonOpen.setSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                      QtWidgets.QSizePolicy.Fixed)

        # Layouts.
        self.include1Layout = QtWidgets.QHBoxLayout()
        self.include1Layout.setContentsMargins(0, 0, 0, 0)
        self.include1Layout.setSpacing(5)
        self.include1Layout.addWidget(self.buttonHome)
        self.include1Layout.addWidget(self.lookInCombo)
        self.include1Layout.addWidget(self.toParentButton)

        self.include2Layout = QtWidgets.QHBoxLayout()
        self.include2Layout.setContentsMargins(0, 0, 0, 0)
        self.include2Layout.setSpacing(5)
        self.include2Layout.addWidget(self.stackedWidget)

        self.include4Layout = QtWidgets.QGridLayout()
        self.include4Layout.setContentsMargins(0, 0, 0, 0)
        self.include4Layout.setSpacing(5)
        self.include4Layout.addWidget(
            self.fileNameLabel, 0, 0,
            QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
        self.include4Layout.addWidget(self.fileNameEdit, 0, 1)
        self.include4Layout.addWidget(
            self.fileTypeLabel, 1, 0,
            QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
        self.include4Layout.addWidget(self.fileTypeCombo, 1, 1)
        self.include4Layout.addWidget(self.fileTypeLabelFiller, 2, 0)
        self.include4Layout.addWidget(self.fileTypeComboFiller, 2, 1)

        self.include5Layout = QtWidgets.QHBoxLayout()
        self.include5Layout.setAlignment(QtCore.Qt.AlignLeft
                                         | QtCore.Qt.AlignVCenter)
        self.include5Layout.setContentsMargins(0, 0, 0, 0)
        self.include5Layout.setSpacing(5)
        self.include5Layout.addWidget(self.buttonOriginal)
        spacer = QtWidgets.QSpacerItem(5, 0,
                                       QtWidgets.QSizePolicy.MinimumExpanding)
        self.include5Layout.addSpacerItem(spacer)
        self.include5Layout.addWidget(self.buttonOpen)

        self.includeLayout = QtWidgets.QVBoxLayout()
        self.includeLayout.setContentsMargins(0, 0, 0, 0)
        self.includeLayout.setSpacing(5)
        self.includeLayout.addLayout(self.include1Layout)
        self.includeLayout.addLayout(self.include2Layout)
        self.includeLayout.addLayout(self.include4Layout)
        line1 = QtWidgets.QFrame()
        line1.setFrameStyle(QtWidgets.QFrame.HLine | QtWidgets.QFrame.Sunken)
        self.includeLayout.addWidget(line1)
        self.includeLayout.addLayout(self.include5Layout)

        self.setLayout(self.includeLayout)
        self.setSizePolicy(QtWidgets.QSizePolicy.Minimum,
                           QtWidgets.QSizePolicy.Expanding)

        self.buttonHome.clicked.connect(self.onHome)
        self.buttonOriginal.clicked.connect(self.onOriginal)
        self.lookInCombo.activated[int].connect(self.onPathComboChanged)
        self.fileTypeCombo.activated[int].connect(self._useNameFilter)

        self.fileModel = QtWidgets.QFileSystemModel(parent)
        self.fileModel.setReadOnly(True)
        self.fileModel.setNameFilterDisables(False)
        self.fileModel.setResolveSymlinks(True)
        self.fileModel.rootPathChanged.connect(self.pathChanged)

        self.listView.setModel(self.fileModel)

        self.listView.activated[QtCore.QModelIndex].connect(
            self.enterDirectory)

        # Set selection mode and behavior.
        self.listView.setSelectionBehavior(
            QtWidgets.QAbstractItemView.SelectRows)
        self.listView.setWrapping(False)
        self.listView.setResizeMode(QtWidgets.QListView.Adjust)

        selectionMode = QtWidgets.QAbstractItemView.SingleSelection
        self.listView.setSelectionMode(selectionMode)

        # Setup the completer.
        completer = QtWidgets.QCompleter(self.fileModel, self.fileNameEdit)
        completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
        self.fileNameEdit.setCompleter(completer)
        self.fileNameEdit.textChanged.connect(self.autoCompleteFileName)
        self.fileNameEdit.returnPressed.connect(self.accept)

        pathFile = None
        if not path:
            self.__path = os.getcwd()
        elif os.path.isfile(path):
            self.__path, pathFile = os.path.split(path)
        else:
            self.__path = path

        self.setPath(self.__path)

        if filter:
            self.setNameFilters(filter)

        if selectedFilter:
            self.selectNameFilter(selectedFilter)

        self.listPage = QtWidgets.QWidget(self.stackedWidget)
        self.stackedWidget.addWidget(self.listPage)
        listLayout = QtWidgets.QGridLayout(self.listPage)
        #listLayout.setMargin(0)
        listLayout.setContentsMargins(0, 0, 0, 0)
        listLayout.addWidget(self.listView, 0, 0, 1, 1)

        self.fileTypeLabelFiller.hide()
        self.fileTypeComboFiller.hide()

        # Selections
        selections = self.listView.selectionModel()
        selections.selectionChanged.connect(self.fileSelectionChanged)

        if pathFile is not None:
            idx = self.fileModel.index(self.fileModel.rootPath() +
                                       QtCore.QDir.separator() + pathFile)
            self.select(idx)
            self.fileNameEdit.setText(pathFile)

        # Connect signals.
        self.toParentButton.clicked.connect(self.onUp)
        self.buttonOpen.clicked.connect(self.accept)

        self.listView.scheduleDelayedItemsLayout()
        self.stackedWidget.setCurrentWidget(self.listPage)
        self.fileNameEdit.setFocus()
예제 #20
0
    def __init__(self,
                 ui_name,
                 nodetype_display=None,
                 auto_name=None,
                 auto_comment=None,
                 completer_list=None,
                 parent=None):
        """Pop up window to gather name and comment from user about the preset

        Args:
            ui_name (str): name to give the ui
            auto_name (str, optional): should a name be already set
            auto_comment (str, optional): should a comment already be filled
            completer_list (list, optional): list of names for the completer
            parent (QtWidget, optional): Window to parent over
        """
        super(NameAndDescribePresetUI, self).__init__(parent=parent)
        self.setWindowTitle(ui_name)
        mainLayout = QtWidgets.QVBoxLayout()
        self.setLayout(mainLayout)
        self.result = []
        #  --------------------------------------------------------------------
        if nodetype_display:
            create_layout = QtWidgets.QVBoxLayout()
            msg = "Creating a preset for:"
            creating_label = QtWidgets.QLabel(msg)
            nodetype_label = QtWidgets.QLabel(nodetype_display)
            font = nodetype_label.font()
            font.setBold(True)
            nodetype_label.setFont(font)
            create_layout.addWidget(creating_label)
            create_layout.addWidget(nodetype_label)
            mainLayout.addLayout(create_layout)
        selectionLayout = QtWidgets.QHBoxLayout()
        selectionLabel = QtWidgets.QLabel("Give preset name:")
        self.preset_name_edit = QtWidgets.QLineEdit()
        self.preset_name_edit.setPlaceholderText("name")
        val = QtGui.QRegExpValidator(QtCore.QRegExp("[A-Za-z]+"))
        self.preset_name_edit.setValidator(val)
        if auto_name:
            self.preset_name_edit.setText(auto_name)

        if completer_list:
            com = QtWidgets.QCompleter(completer_list)
            self.preset_name_edit.setCompleter(com)

        selectionLayout.addWidget(selectionLabel)
        selectionLayout.addWidget(self.preset_name_edit)
        mainLayout.addLayout(selectionLayout)
        #  --------------------------------------------------------------------
        self.comment_widget = QtWidgets.QTextEdit()
        self.comment_widget.setPlaceholderText("Details on the preset.")
        mainLayout.addWidget(self.comment_widget)
        if auto_comment:
            self.comment_widget.setText(auto_comment)

        #  --------------------------------------------------------------------
        # buttonLayout = QtWidgets.QHBoxLayout()
        self.okButton = QtWidgets.QPushButton("Ok")
        self.okButton.clicked.connect(self.onOK)
        mainLayout.addWidget(self.okButton)
예제 #21
0
	def __init__(self):
		super(Core_ExprPrompt, self).__init__()
		# set
		self.ls_layers = PRESET_LINE

		# Left Widgets
		self.title = QtWidgets.QLabel("<h3>%s</h3>" % __TITLE__)
		self.st_expr = QtWidgets.QLineEdit()
		self.st_expr.setPlaceholderText('$ly: layer (Id06), $ch: channel (red)')
		self.st_expr.returnPressed.connect(self.onPressed)
		self.st_expr.setCompleter(QtWidgets.QCompleter(self.ls_layers))
		self.st_expr.textChanged.connect(self.onTextChanged)
		self.mu_layers = QtWidgets.QComboBox()
		self.mu_layers.setEnabled(False)
		self.ck_ch_r = QtWidgets.QCheckBox('r')
		self.ck_ch_g = QtWidgets.QCheckBox('g')
		self.ck_ch_b = QtWidgets.QCheckBox('b')
		self.ck_ch_a = QtWidgets.QCheckBox('alpha')
		self.bt_ch_all = QtWidgets.QPushButton('all')
		self.bt_ch_all.clicked.connect(self.setChannels)
		self.ck_clamp = QtWidgets.QCheckBox('clamp')
		self.ck_invert = QtWidgets.QCheckBox('invert')
		self.bt_set = QtWidgets.QPushButton('Set!')
		self.bt_set.clicked.connect(self.onPressed)

		# Right Widgets
		for idx, p in enumerate(PRESET_BTN.keys()):
			exec("self.presetBtn%s=QtWidgets.QPushButton('%s')" % (idx, p))
			exec("self.presetBtn%s.clicked.connect(self.setPreset)" % (idx))


		self.ls_ch_layer = [self.ck_ch_r, self.ck_ch_g, self.ck_ch_b, self.ck_ch_a]
		self.ls_wrapper = [self.ck_clamp, self.ck_invert]

		# define layouts
		self.layout_master = QtWidgets.QHBoxLayout()
		self.layout_main = QtWidgets.QVBoxLayout()
		self.layout_expr = QtWidgets.QHBoxLayout()
		self.preset_group = QtWidgets.QGroupBox('presets:')
		self.layout_right = QtWidgets.QVBoxLayout()
		self.preset_group.setLayout(self.layout_right)
		self.layout_channels = QtWidgets.QHBoxLayout()
		self.layout_wrappers = QtWidgets.QHBoxLayout()
		self.layout_wrappers.setAlignment(QtCore.Qt.AlignLeft)

		# add widgets and set layouts
		for m in [self.st_expr, self.mu_layers]:
			self.layout_expr.addWidget(m)
		for c in [self.ck_ch_r, self.ck_ch_g, self.ck_ch_b,self.ck_ch_a, self.bt_ch_all]:
			self.layout_channels.addWidget(c)
		for w in [self.ck_clamp, self.ck_invert]:
			self.layout_wrappers.addWidget(w)

		# Main Layout
		self.layout_main.addWidget(self.title)
		self.layout_main.addLayout(self.layout_expr)
		self.layout_main.addLayout(self.layout_channels)
		self.layout_main.addLayout(self.layout_wrappers)
		self.layout_main.addWidget(self.bt_set)

		# Right Layout
		# self.layout_right.addStretch()
		for idx, p in enumerate(PRESET_BTN.keys()):
			eval('self.layout_right.addWidget(self.presetBtn%s)' % idx)
		self.layout_right.addStretch()

		# Master Layout
		self.layout_master.addLayout(self.layout_main)
		self.layout_master.addWidget(self.preset_group)
		self.setLayout(self.layout_master)

		self.setMaximumWidth(400)
		self.mu_layers.setMaximumWidth(70)

		self.setWindowTitle(__TITLE__)
		self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.Popup)

		self.setDefault()