예제 #1
0
    def setupValues(self):
        if self.cfg.getboolean("general", "differentApi", fallback=False):
            self.differentApiButton.setChecked(Qt.Checked)
        else:
            self.differentApiButton.setChecked(Qt.Unchecked)
        self.requiredApiEdit.setText(pytson.getCurrentApiVersion())

        if self.cfg.getboolean("general", "loadAllMenus", fallback=False):
            self.loadMenusButton.setChecked(Qt.Checked)
        else:
            self.loadMenusButton.setChecked(Qt.Unchecked)

        bgcolor = QColor(self.cfg.get("console", "backgroundColor")).name()
        self.bgColorButton.setStyleSheet("background-color: %s;" % bgcolor)
        txtcolor = QColor(self.cfg.get("console", "textColor")).name()
        self.textColorButton.setStyleSheet("background-color: %s;" % txtcolor)

        f = QFont(self.cfg.get("console", "fontFamily"))
        self.fontFamilyCombo.setCurrentFont(f)
        self.fontSizeSpin.setValue(self.cfg.getint("console", "fontSize"))

        if self.cfg.getboolean("console", "tabcomplete"):
            self.tabcompleteButton.setChecked(True)
            self.spacesButton.setEnabled(False)
            self.tabwidthSpin.setEnabled(False)
            self.tabwidthLabel.setEnabled(False)
        else:
            self.tabcompleteButton.setChecked(False)

        self.spacesButton.setChecked(self.cfg.getboolean("console", "spaces"))
        self.tabwidthSpin.setValue(self.cfg.getint("console", "tabwidth"))

        self.scriptEdit.setText(self.cfg.get("console", "startup"))
        self.silentButton.setChecked(self.cfg.getboolean("console",
                                                         "silentStartup"))

        self.languageCombo.addItem("Default", "en_US")
        for loc in pytson.locales():
            qloc = QLocale(loc)
            self.languageCombo.addItem(qloc.nativeLanguageName(), loc)

            if self.cfg.get("general", "language") == loc:
                self.languageCombo.setCurrentIndex(self.languageCombo.count - 1)

        if self.cfg.get("general", "language") == "inherited":
            self.languageButton.setChecked(True)
            self.languageCombo.setEnabled(False)

        if self.cfg.getboolean("general", "verbose"):
            self.verboseButton.setChecked(True)

        self.setupList()
        self.reloadSite()
예제 #2
0
 def onTextColorButtonClicked(self):
     curcolor = QColor(self.cfg.get("console", "textColor"))
     c = QColorDialog.getColor(curcolor, self,
                               self._tr("Console Text Color"))
     if c.isValid():
         self.cfg.set("console", "textColor", c.name())
         self.textColorButton.setStyleSheet("background-color: %s;" %
                                            c.name())
예제 #3
0
	def dropGuide(self, nodes=None, layers=None, name='*DropGuideline', tag='', color='darkMagenta', flip=(1,1), style='gsGlyphGuideline'):
		'''Build guideline trough *any two* given points or the *first two of the current selection*.

		If *single point* is given will create a vertical guideline trough that point,
		with guideline inclined according to the font's Italic Angle.

		if process layers (pLayers) is None guideline will be created in all compatible layers,
		otherwise the bool control tuple (active_layer (True or False), masters (True or False), masks (True or False), services (True or False)) is used. 
		If all are set to False only the active layer is used.

		Args:
			nodes (list(int)): List of node indexes
			layers tuple(bool): Bool control tuple(active_layer, masters, masks, services). Note If all are set to False only the active layer is used.
			name (str): Name of the guideline to be build
			color (str): Color of the guideline according to QtCore colors
			style (str): Style of the guideline according to FontLab 6

		Returns:
			None
		'''

		#!!!NOTE: It seems that composite/element glyphs with different delta/transforamtion could affect the positioning!
		#!!!NOTE: As elements are bidirectional now, try to check and adapt for the current QTransform!
		
		from PythonQt.QtCore import QLineF
		from PythonQt.QtGui import QTransform, QColor

		# - Init
		italicAngle = self.italicAngle()
		origin = pqt.QtCore.QPointF(0,0)
		pLayers = self._prepareLayers(layers)

		if nodes is None:
			coordDict = {name:self.selectedCoords(name, applyTransform=True) for name in pLayers if self.layer(name).isCompatible(self.activeLayer(), True)}
			processSingle = len(self.selected()) < 2
		else:
			# TODO: Make it qTransform aware! as the one above!
			coordDict = {name:[self.nodes(name)[nid].pointf for nid in nodes] for name in pLayers if self.layer(name).isCompatible(self.activeLayer(), True)}
			processSingle = len(nodes) < 2

		# - Process
		for layerName, layerCoords in coordDict.iteritems():
						
			if not processSingle:
				vector = QLineF(layerCoords[0], layerCoords[1])
			else:
				vector = QLineF(layerCoords[0], origin)
				vector.setAngle(90 - italicAngle)

			vTransform = QTransform()
			vTransform.scale(float(flip[0]), float(flip[1]))
			vector = vTransform.map(vector)

			# - Build
			newg = fl6.flGuideLine(vector)
			newg.name, newg.color, newg.style = name, QColor(color), style
			newg.tag(tag.replace(' ', '').split(','))
			self.layer(layerName).appendGuidelines([newg])
예제 #4
0
 def showScriptingConsole(cls):
     if not cls.shell:
         cls.verboseLog(cls._tr("Creating scripting console"),
                        "pyTSon.PluginHost.showScriptingConsole")
         tabcomp = cls.cfg.getboolean("console", "tabcomplete")
         spaces = cls.cfg.getboolean("console", "spaces")
         tabwidth = cls.cfg.getint("console", "tabwidth")
         font = QFont(cls.cfg.get("console", "fontFamily"),
                      cls.cfg.getint("console", "fontSize"))
         bgcolor = QColor(cls.cfg.get("console", "backgroundColor"))
         txtcolor = QColor(cls.cfg.get("console", "textColor"))
         w = cls.cfg.getint("console", "width")
         h = cls.cfg.getint("console", "height")
         startup = cls.cfg.get("console", "startup")
         silent = cls.cfg.getboolean("console", "silentStartup")
         cls.shell = PythonConsole(tabcomp, spaces, tabwidth, font, bgcolor,
                                   txtcolor, w, h, startup, silent)
         cls.shell.connect("destroyed()", cls.scriptingConsoleDestroyed)
     cls.shell.show()
예제 #5
0
  def __init__(self):
    QObject.__init__(self)

    # Generate colors
    self.colors = []
    for hue in xrange(0, 255, 30):
      self.colors.append(QColor.fromHsv(hue, 255, 255, 96))

    self.action = QAction("rainbowize_playlist", self)
    self.action.setText("Rainbowize!")
    self.action.setCheckable(True)
    self.action.connect("changed()", self.rainbowize)

    clementine.ui.AddAction('playlist_menu', self.action)
예제 #6
0
def initScene():
    global mesh
    global shader
    global angle
    global t
    global t0

    t0 = time()
    t = 0

    angle = 0
    mesh = GLMesh()
    shader = GLShaderProgram("default")
    shader.setUniform("alpha", 1.0)
    shader.setUniform("color", QColor(128, 255, 255))

    mesh.setVertexShaderMapping(shader, ["position"], [3])
    mesh.setVertices([0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.5], [0, 1, 1, 2, 2, 0])
예제 #7
0
def initScene():
    global mesh
    global shader
    global angle
    global t
    global t0

    t0 = time()
    t = 0

    angle = 0
    mesh = GLHandler.newMesh()
    shader = GLHandler.newShader("default")
    GLHandler.setShaderParam(shader, "alpha", 1.0)
    GLHandler.setShaderParam(shader, "color", QColor(128, 255, 255))

    GLHandler.setVertices(mesh, [0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.5], shader, ["position"], [3], [0, 1, 1, 2, 2, 0])

    HydrogenVR.appendPostProcessingShader("py", "grayscale")
예제 #8
0
    def data(self, index, role):
        obj = self._indexObject(index)

        if role == Qt.DisplayRole:
            if type(obj) is Client:
                if obj.isRecording:
                    return "*** %s *** [RECORDING]" % obj.displayName
                else:
                    return obj.displayName

            return obj.name
        elif role == ServerViewRoles.isspacer:
            return type(obj) is Channel and obj.isSpacer
        elif type(obj) is Channel and role == ServerViewRoles.spacertype:
            return obj.spacerType
        elif type(obj) is Channel and role == ServerViewRoles.spacercustomtext:
            return obj.spacerCustomtext
        elif type(obj) is Channel and role == ServerViewRoles.spaceralignment:
            return obj.spacerAlignment
        elif role == Qt.DecorationRole:
            if not (type(obj) is Channel and obj.isSpacer):
                return QIcon(self.iconpack.icon(obj.iconVariable()))
        elif role == ServerViewRoles.statusicons:
            ret = []
            if type(obj) is Channel:
                if obj.isDefault:
                    ret.append(QIcon(self.iconpack.icon("DEFAULT")))
                if obj.codec == ts3defines.CodecType.CODEC_OPUS_MUSIC:
                    ret.append(QIcon(self.iconpack.icon("MUSIC")))
                if obj.neededTalkPower > 0:
                    ret.append(QIcon(self.iconpack.icon("MODERATED")))
                if obj.iconID != 0:
                    ret.append(QIcon(self.icons.icon(obj.iconID)))
            elif type(obj) is Client:
                # badges
                # priority speaker
                if obj.isPrioritySpeaker:
                    ret.append(QIcon(self.iconpack.icon("CAPTURE")))
                # istalker
                if obj.isTalker:
                    ret.append(QIcon(self.iconpack.icon("IS_TALKER")))
                elif obj.talkPower < obj.parentNode.neededTalkPower:
                    ret.append(QIcon(self.iconpack.icon("INPUT_MUTED")))
                # channelgroup
                if obj.channelGroup in self.cgicons:
                    ret.append(
                        QIcon(self.icons.icon(self.cgicons[obj.channelGroup])))
                # servergroups
                for sg in obj.serverGroups:
                    if sg in self.sgicons:
                        ret.append(QIcon(self.icons.icon(self.sgicons[sg])))
                # clienticon
                if obj.iconID != 0:
                    ret.append(QIcon(self.icons.icon(obj.iconID)))
                # talkrequest
                if obj.isRequestingTalkPower:
                    ret.append(QIcon(self.iconpack.icon("REQUEST_TALK_POWER")))
                # flag
                if obj.country != "":
                    ret.append(QIcon(self.countries.flag(obj.country)))
            else:
                assert type(obj) is Server
                if obj.iconID != 0:
                    ret.append(QIcon(self.icons.icon(obj.iconID)))

            return ret
        elif role == Qt.FontRole:
            if type(obj) is Client and obj.isme:
                font = QApplication.font()
                font.setBold(True)
                return font
        elif role == Qt.ForegroundRole:
            if type(obj) is Client and obj.isRecording:
                return QColor(Qt.darkRed)

        return None