Example #1
0
    def __init__(self):
        QWidget.__init__(self)
        vbox = QVBoxLayout(self)

        #Top Bar
        hbox = QHBoxLayout()
        self.radioDefault = QRadioButton("Default Skin")
        self.radioCustom = QRadioButton("Custom")
        self.comboSkins = QComboBox()
        self.skins = loader.load_gui_skins()
        for item in self.skins:
            self.comboSkins.addItem(item)
        hbox.addWidget(self.radioDefault)
        hbox.addWidget(self.radioCustom)
        hbox.addWidget(self.comboSkins)
        #Text Area
        self.txtStyle = QPlainTextEdit()
        self.txtStyle.setReadOnly(True)

        #Settings
        settings = QSettings()
        settings.beginGroup('preferences')
        settings.beginGroup('skins')
        if settings.value('default', True).toBool():
            self.radioDefault.setChecked(True)
            self.comboSkins.setEnabled(False)
        else:
            self.radioCustom.setChecked(True)
            index = self.comboSkins.findText(
                settings.value('selectedSkin', '').toString())
            self.comboSkins.setCurrentIndex(index)
            content = self.skins[str(self.comboSkins.currentText())]
            self.txtStyle.setPlainText(content)
        settings.endGroup()
        settings.endGroup()

        vbox.addLayout(hbox)
        vbox.addWidget(self.txtStyle)
        vbox.addWidget(QLabel('Requires restart the IDE'))

        #Signals
        self.connect(self.radioDefault, SIGNAL("clicked()"),
                     self._default_clicked)
        self.connect(self.radioCustom, SIGNAL("clicked()"),
                     self._custom_clicked)
Example #2
0
    def __init__(self):
        QWidget.__init__(self)
        vbox = QVBoxLayout(self)

        #Top Bar
        hbox = QHBoxLayout()
        self.radioDefault = QRadioButton("Default Skin")
        self.radioCustom = QRadioButton("Custom")
        self.comboSkins = QComboBox()
        self.skins = loader.load_gui_skins()
        for item in self.skins:
            self.comboSkins.addItem(item)
        hbox.addWidget(self.radioDefault)
        hbox.addWidget(self.radioCustom)
        hbox.addWidget(self.comboSkins)
        #Text Area
        self.txtStyle = QPlainTextEdit()
        self.txtStyle.setReadOnly(True)

        #Settings
        settings = QSettings()
        settings.beginGroup('preferences')
        settings.beginGroup('skins')
        if settings.value('default', True).toBool():
            self.radioDefault.setChecked(True)
            self.comboSkins.setEnabled(False)
        else:
            self.radioCustom.setChecked(True)
            index = self.comboSkins.findText(settings.value('selectedSkin', '').toString())
            self.comboSkins.setCurrentIndex(index)
            content = self.skins[str(self.comboSkins.currentText())]
            self.txtStyle.setPlainText(content)
        settings.endGroup()
        settings.endGroup()

        vbox.addLayout(hbox)
        vbox.addWidget(self.txtStyle)
        vbox.addWidget(QLabel('Requires restart the IDE'))

        #Signals
        self.connect(self.radioDefault, SIGNAL("clicked()"), self._default_clicked)
        self.connect(self.radioCustom, SIGNAL("clicked()"), self._custom_clicked)
Example #3
0
def start():
    app = QApplication(sys.argv)
    QCoreApplication.setOrganizationName('NINJA-IDE')
    QCoreApplication.setOrganizationDomain('ninja-ide.org.ar')
    QCoreApplication.setApplicationName('Kunai')

    # Create and display the splash screen
    splash_pix = QPixmap(resources.images['splash'])
    splash = QSplashScreen(splash_pix, Qt.WindowStaysOnTopHint)
    splash.setMask(splash_pix.mask())
    splash.show()
    app.processEvents()
    loader.load_syntax()

    #Loading GUI
    splash.showMessage("Loading GUI", Qt.AlignRight | Qt.AlignBottom, Qt.white)
    settings = QSettings()
    if not settings.value('preferences/skins/default', True).toBool():
        selectedSkin = settings.value('preferences/skins/selectedSkin', '').toString()
        skins = loader.load_gui_skins()
        css = skins.get(str(selectedSkin), '')
        app.setStyleSheet(css)
    schemeColor = str(settings.value('preferences/editor/scheme', 'default').toString())
    if schemeColor != 'default':
        resources.custom_scheme = loader.load_editor_skins().get(schemeColor, {})
    #Editor Configuration
    EditorGeneric.codeCompletion = settings.value('preferences/editor/codeCompletion', True).toBool()
    EditorGeneric.indent = settings.value('preferences/editor/indent', 4).toInt()[0]
    EditorGeneric.findErrors = settings.value('preferences/editor/errors', False).toBool()
    EditorGeneric.checkStyle = settings.value('preferences/editor/checkStyle', True).toBool()
    EditorGeneric.highlightVariables = settings.value('preferences/editor/highlightWord', True).toBool()
    if not settings.value('preferences/editor/parentheses', True).toBool():
        del EditorGeneric.braces_strings['(']
    if not settings.value('preferences/editor/brackets', True).toBool():
        del EditorGeneric.braces_strings['[']
    if not settings.value('preferences/editor/keys', True).toBool():
        del EditorGeneric.braces_strings['{']
    if not settings.value('preferences/editor/simpleQuotes', True).toBool():
        del EditorGeneric.braces_strings["'"]
    if not settings.value('preferences/editor/doubleQuotes', True).toBool():
        del EditorGeneric.braces_strings['"']

    ide = IDE()
    if settings.value('preferences/interface/centralRotate', False).toBool():
        ide.main._splitter_central_rotate()
    if settings.value('preferences/interface/panelsRotate', False).toBool():
        ide.main._splitter_main_rotate()
    if settings.value('preferences/interface/centralOrientation', False).toBool():
        ide.main._splitter_central_orientation()

    #Settings
    splash.showMessage("Loading Settings", Qt.AlignRight | Qt.AlignBottom, Qt.white)
    resources.python_path = str(settings.value('preferences/general/pythonPath', 'python').toString())
    if (settings.value('preferences/general/activatePlugins', Qt.Checked) == Qt.Checked):
        set_plugin_access(ide)
        ninja_ide.core.load_plugins(ide)
    resources.workspace = str(settings.value('preferences/general/workspace', '').toString())
    supportedExtensions = settings.value('preferences/general/extensions', []).toList()
    if supportedExtensions:
        tempExtensions = []
        for se in supportedExtensions:
            tempExtensions.append(str(se.toString()))
        manage_files.supported_extensions = tuple(tempExtensions)

    #Load Font preference
    font = str(settings.value('preferences/editor/font', "Monospace, 11").toString())
    EditorGeneric.font_family = font.split(', ')[0]
    EditorGeneric.font_size = int(font.split(', ')[1])

    ide.show()
    splash.showMessage("Loading Projects", Qt.AlignRight | Qt.AlignBottom, Qt.white)
    for projectFolder in settings.value('openFiles/projects', []).toStringList():
        if os.path.isdir(projectFolder):
            ide.main.open_project_folder(str(projectFolder), False)

    if (settings.value('preferences/general/loadFiles', Qt.Checked) == Qt.Checked):
        for openFile in settings.value('openFiles/tab1', []).toList():
            if len(openFile.toList()) > 0:
                fileList = openFile.toList()
                fileName = str(fileList[0].toString())
                projectPath = str(fileList[1].toString())
                if len(projectPath) == 0:
                    projectPath = None
                cursorPosition = fileList[2].toInt()[0]
                if os.path.isfile(fileName):
                    ide.main.open_document(fileName, projectPath)
                    ide.main._central.obtain_editor().set_cursor_position(cursorPosition)

        for openFile2 in settings.value('openFiles/tab2', []).toList():
            #ide.main.split_tab(True)
            if len(openFile2.toList()) > 0:
                ide.main._central._tabs2.show()
                ide.main._central._mainTabSelected = False
                fileList = openFile2.toList()
                fileName = fileList[0].toString()
                projectPath = fileList[1].toString()
                cursorPosition = fileList[2].toInt()[0]
                if os.path.isfile(fileName):
                    ide.main.open_document(str(fileName), str(projectPath))
                    ide.main._central.obtain_editor().set_cursor_position(cursorPosition)
                ide.main._central._mainTabSelected = True

    filenames, projects_path = ninja_ide.core.cliparser.parse()

    for filename in filenames:
        ide.main.open_document(filename)

    for project_path in projects_path:
        ide.main.open_project_folder(project_path)

    splash.finish(ide)
    sys.exit(app.exec_())