def content(n, b, only_path=False):
        global warn_
        b.readSettings()
        util = FLUtil()
        separator = "\\" if util.getOS().find("WIN") > -1 else "/"
        for info in b.dirs_:
            content_path = info.path_ + separator + n
            if info.active_ and os.path.exists(content_path):
                if not warn_:
                    warn_ = FLStaticLoaderWarning()

                timer = QtCore.QTimer()
                settings = FLSettings()
                if not warn_.warns_ and settings.readBoolEntry("ebcomportamiento/SLInterface", True):
                    timer.singleShot(500, warn_.popupWarnings)

                if not warn_.paths_:
                    timer.singleShot(1500, warn_.updateScripts)

                msg = "%s -> ...%s" % (n, info.path_[0:40])

                if not msg in warn_.warns_:
                    warn_.warns_.append(msg)
                    warn_.paths_.append("%s:%s" % (n, info.path_))
                    if settings.readBoolEntry("ebcomportamiento/SLConsola", False):
                        logger.warn("CARGA ESTATICA ACTIVADA:%s -> %s", n, info.path_)

                if only_path:
                    return content_path
                else:
                    from pineboolib.pncontrolsfactory import aqApp
                    return aqApp.db().managerModules().contentFS(info.path_ + separator + n)

        return None
Exemple #2
0
    def doTransaction(self, cursor):
        if not cursor or not self.db():
            return False

        settings = FLSettings()
        if self.transaction_ == 0:
            if settings.readBoolEntry("application/isDebuggerMode", False):
                logger.warn("Iniciando Transacción... %s", self.transaction_)
            if self.transaction():
                self.savePoint(self.transaction_)
                self.lastActiveCursor_ = cursor
                self.transaction_ = self.transaction_ + 1
                # cursor.d.transactionsOpened_.push(self.transaction_)
                cursor.d.transactionsOpened_.append(self.transaction_)
                return True
            else:

                logger.warn(
                    "doTransaction: Fallo al intentar iniciar la transacción")
                return False
        else:
            if settings.readBoolEntry("application/isDebuggerMode", False):
                logger.warn("Creando punto de salvaguarda %s", self.transaction_)
            self.savePoint(self.transaction_)

            self.transaction_ = self.transaction_ + 1
            cursor.d.transactionsOpened_.append(self.transaction_)  # push
Exemple #3
0
    def mouseDoubleClickEvent(self, e):
        if e.button() != QtCore.Qt.LeftButton:
            return

        settings = FLSettings()
        if not settings.readBoolEntry("ebcomportamiento/FLTableDoubleClick", False):
            self.recordChoosed.emit()
Exemple #4
0
    def loadControls(self):
        if self.pushButtonCancel:
            self.pushButtonCancel.hide()

        if self.bottomToolbar:
            self.toolButtonClose.hide()
        self.bottomToolbar = QtWidgets.QFrame()
        self.bottomToolbar.setMinimumSize(self.iconSize)

        self.bottomToolbar.layout = QtWidgets.QHBoxLayout()
        self.bottomToolbar.setLayout(self.bottomToolbar.layout)
        self.bottomToolbar.layout.setContentsMargins(0, 0, 0, 0)
        self.bottomToolbar.layout.setSpacing(0)
        self.bottomToolbar.layout.addStretch()
        self.bottomToolbar.setFocusPolicy(QtCore.Qt.NoFocus)
        self.layout.addWidget(self.bottomToolbar)
        # if self.layout:
        #    self.layout = None
        # Limpiamos la toolbar

        sizePolicy = QtWidgets.QSizePolicy(
            QtWidgets.QSizePolicy.Policy(0), QtWidgets.QSizePolicy.Policy(0))
        sizePolicy.setHeightForWidth(True)

        pbSize = self.iconSize
        settings = FLSettings()
        if settings.readBoolEntry("application/isDebuggerMode", False):

            pushButtonExport = QtWidgets.QToolButton()
            pushButtonExport.setObjectName("pushButtonExport")
            pushButtonExport.setSizePolicy(sizePolicy)
            pushButtonExport.setMinimumSize(pbSize)
            pushButtonExport.setMaximumSize(pbSize)
            pushButtonExport.setIcon(QtGui.QIcon(filedir("../share/icons", "gtk-properties.png")))
            pushButtonExport.setShortcut(QKeySequence(self.tr("F3")))
            pushButtonExport.setWhatsThis("Exportar a XML(F3)")
            pushButtonExport.setToolTip("Exportar a XML(F3)")
            pushButtonExport.setFocusPolicy(QtCore.Qt.NoFocus)
            self.bottomToolbar.layout.addWidget(pushButtonExport)
            pushButtonExport.clicked.connect(self.exportToXml)
            spacer = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
            self.bottomToolbar.layout.addItem(spacer)

        if not self.pushButtonCancel:
            self.pushButtonCancel = QtWidgets.QToolButton()
            self.pushButtonCancel.setObjectName("pushButtonCancel")
            self.pushButtonCancel.clicked.connect(self.close)

        self.pushButtonCancel.setSizePolicy(sizePolicy)
        self.pushButtonCancel.setMaximumSize(pbSize)
        self.pushButtonCancel.setMinimumSize(pbSize)
        self.pushButtonCancel.setIcon(
            QtGui.QIcon(filedir("../share/icons", "gtk-stop.png")))
        # self.pushButtonCancel.setFocusPolicy(QtCore.Qt.StrongFocus)
        # self.pushButtonCancel.setFocus()
        self.pushButtonCancel.setShortcut(QKeySequence(self.tr("Esc")))
        self.pushButtonCancel.setWhatsThis("Cerrar formulario (Esc)")
        self.pushButtonCancel.setToolTip("Cerrar formulario (Esc)")
        self.bottomToolbar.layout.addWidget(self.pushButtonCancel)
        self.setFocusPolicy(QtCore.Qt.NoFocus)
Exemple #5
0
    def doCommit(self, cur, notify=True):
        if not cur and not self.db():
            return False

        if not notify:
            cur.autocommit.emit()

        if self.transaction_ > 0:
            if cur.d.transactionsOpened_:
                trans = cur.d.transactionsOpened_.pop()
                if not trans == self.transaction_:
                    logger.warn(
                        "El cursor va a terminar la transacción %s pero la última que inició es la %s", self.transaction_, trans)
            else:
                logger.warn(
                    "El cursor va a terminar la transacción %s pero no ha iniciado ninguna", self.transaction_)

            self.transaction_ = self.transaction_ - 1
        else:

            return True

        if self.transaction_ == 0:
            settings = FLSettings()
            if settings.readBoolEntry("application/isDebuggerMode", False):
                logger.warn("Terminando transacción... %s", self.transaction_)
            try:
                # self.conn.commit()
                self.releaseSavePoint(self.transaction_)
                self.commitTransaction()
                self.lastActiveCursor_ = None

                if notify:
                    cur.d.modeAccess_ = FLSqlCursor.Browse

                # aqApp.emitTransactionEnd(cur)
                return True
            except Exception as e:
                logger.error(
                    "doCommit: Fallo al intentar terminar transacción: %s", e)
                return False
        else:
            logger.info("Liberando punto de salvaguarda %s...",
                        self.transaction_)
            if self.transaction_ == 1:
                self.releaseSavePoint(self.transaction_)
                if notify:
                    cur.d.modeAccess_ = FLSqlCursor.Browse

                return True
            self.releaseSavePoint(self.transaction_)

            if notify:
                cur.d.modeAccess_ = FLSqlCursor.Browse

            return True
Exemple #6
0
    def loadState(self):
        sett_ = FLSettings()
        viewFavorites_ = sett_.readBoolEntry("application/mainForm/viewFavorites", True)
        viewAreas_ = sett_.readBoolEntry("application/mainForm/viewAreas", True)
        sizeF_ = sett_.readEntry("application/mainForm/FavoritesSize", None)
        sizeA_ = sett_.readEntry("application/mainForm/AreasSize", None)
        sizeMF_ = sett_.readEntry("application/mainForm/mainFormSize", None)
        if sizeF_ is not None:
            self.dockFavoritos.resize(sizeF_)

        if sizeA_ is not None:
            self.dockAreasTab.resize(sizeA_)

        if sizeMF_ is not None:
            self.resize(sizeMF_)
        else:
            self.showMaximized()

        """
Exemple #7
0
 def show(self):
     if not self.tiempo_ini:
         self.tiempo_ini = time.time()
     super(FLFormDB, self).show()
     tiempo_fin = time.time()
     settings = FLSettings()
     if settings.readBoolEntry("application/isDebuggerMode", False):
         self.logger.warn("INFO:: Tiempo de carga de %s: %.3fs %s (iface %s)" %
                          (self.actionName_, tiempo_fin - self.tiempo_ini, self, self.iface))
     self.tiempo_ini = None
    def readSettings(self):
        settings = FLSettings()
        self.enabled_ = settings.readBoolEntry("%senabled" % self.key_, False)
        self.dirs_.clear()
        dirs = settings.readListEntry("%sdirs" % self.key_)
        i = 0

        while i < len(dirs):
            active_ = dirs[i]
            i += 1
            path_ = dirs[i]
            i += 1
            self.dirs_.append(AQStaticDirInfo(active_, path_))
Exemple #9
0
def checkDependencies(dict_, exit=True):

    from importlib import import_module

    dependences = []
    error = []
    for key in dict_.keys():
        if not key in DEPENDECIE_CHECKED:
            try:
                mod_ = import_module(key)
                mod_ver = None
                if key == "ply":
                    version_check("ply", mod_.__version__, '3.9')
                elif key == "Pillow":
                    version_check("Pillow", mod_.__version__, '5.1.0')
                elif key == "PyQt5.QtCore":
                    version_check("PyQt5", mod_.QT_VERSION_STR, '5.9')
                    mod_ver = mod_.QT_VERSION_STR

                if not mod_ver:
                    mod_ver = getattr(mod_, "__version__", None) or getattr(mod_, "version", "???")

                settings = FLSettings()
                if settings.readBoolEntry("application/isDebuggerMode", False):
                    logger.warn("Versión de %s: %s", key, mod_ver)
            except ImportError:
                dependences.append(dict_[key])
                error.append(traceback.format_exc())

            DEPENDECIE_CHECKED.append(key)

    msg = ""
    if len(dependences) > 0:
        logger.warn("HINT: Dependencias incumplidas:")
        for dep in dependences:
            logger.warn("HINT: Instale el paquete %s" % dep)
            msg += "Instale el paquete %s.\n%s" % (dep, error)

        if exit:
            if getattr(pineboolib.project, "_DGI", None):
                if pineboolib.project._DGI.useDesktop() and pineboolib.project._DGI.localDesktop():
                    try:
                        ret = QtWidgets.QMessageBox.warning(None, "Pineboo - Dependencias Incumplidas -", msg, QtWidgets.QMessageBox.Ok)
                    except Exception:
                        logger.error("No se puede mostrar el diálogo de dependecias incumplidas")

            if not getattr(sys, 'frozen', False):
                sys.exit(32)

    return len(dependences) == 0
Exemple #10
0
    def loadPreferences(self):
        sett_ = FLSettings()
        viewFavorites_ = sett_.readBoolEntry(
            "application/mainForm/viewFavorites", True)
        viewAreas_ = sett_.readBoolEntry("application/mainForm/viewAreas",
                                         True)
        sizeF_ = sett_.readEntry("application/mainForm/FavoritesSize", None)
        sizeA_ = sett_.readEntry("application/mainForm/AreasSize", None)
        sizeMF_ = sett_.readEntry("application/mainForm/mainFormSize", None)
        if sizeF_ is not None:
            self.dockFavoritos.resize(sizeF_)

        if sizeA_ is not None:
            self.dockAreasTab.resize(sizeA_)

        if sizeMF_ is not None:
            self.resize(sizeMF_)
        else:
            self.showMaximized()

        self.dockFavoritos.setVisible(viewFavorites_)
        self.actionFavoritos.setChecked(viewFavorites_)
        self.dockAreasTab.setVisible(viewAreas_)
        self.actionModulos.setChecked(viewAreas_)
Exemple #11
0
    def load(self):
        try:
            self.tree = etree.ElementTree.parse(self.path)
        except Exception:
            try:
                self.parser = etree.ElementTree.XMLParser(
                    html=0, encoding="ISO-8859-15")
                self.tree = etree.ElementTree.parse(self.path, self.parser)
                self.logger.exception(
                    "Formulario %r se cargó con codificación ISO (UTF8 falló)",
                    self.path)
            except Exception:
                self.logger.exception(
                    "Error cargando UI después de intentar con UTF8 y ISO",
                    self.path)

        self.root = self.tree.getroot()
        self.actions = {}
        self.pixmaps = {}
        if self.prj._DGI.useDesktop():
            for image in self.root.findall("images//image[@name]"):
                name = image.get("name")
                xmldata = image.find("data")
                img_format = xmldata.get("format")
                data = unhexlify(xmldata.text.strip())
                if img_format == "XPM.GZ":
                    data = zlib.decompress(data, 15)
                    img_format = "XPM"

                pixmap = QtGui.QPixmap()
                pixmap.loadFromData(data, img_format)
                icon = QtGui.QIcon(pixmap)
                self.pixmaps[name] = icon

        for xmlaction in self.root.findall("actions//action"):
            action = XMLMainFormAction(xmlaction)
            action.mainform = self
            action.mod = self.mod
            action.prj = self.prj
            iconSet = getattr(action, "iconSet", None)
            action.icon = None
            if iconSet:
                try:
                    action.icon = self.pixmaps[iconSet]
                except Exception as e:
                    if self.prj._DGI.useDesktop():
                        self.logger.exception(
                            "main.Mainform: Error al intentar decodificar icono de accion. No existe."
                        )
            else:
                action.iconSet = None

            self.actions[action.name] = action
            if not self.prj._DGI.localDesktop():
                self.prj._DGI.mainForm().mainWindow.loadAction(action)

            # Asignamos slot a action
            for slots in self.root.findall("connections//connection"):
                slot = XMLStruct(slots)
                if slot._v("sender") == action.name:
                    action.slot = slot._v("slot")
                    action.slot = action.slot.replace('(', '')
                    action.slot = action.slot.replace(')', '')
                if not self.prj._DGI.localDesktop():
                    self.prj._DGI.mainForm().mainWindow.loadConnection(action)

        self.toolbar = []
        sett_ = FLSettings()
        if not sett_.readBoolEntry("ebcomportamiento/ActionsMenuRed", False):
            for toolbar_action in self.root.findall("toolbars//action"):
                self.toolbar.append(toolbar_action.get("name"))
                if not self.prj._DGI.localDesktop():
                    self.prj._DGI.mainForm().mainWindow.loadToolBarsAction(
                        toolbar_action.get("name"))
        else:
            # FIXME: cargar solo las actions de los menus
            sett_.writeEntry("ebcomportamiento/ActionsMenuRed", False)
Exemple #12
0
    def load(self):
        if self.ui:
            del self.ui

        self.ui = uic.loadUi(filedir('plugins/mainform/pineboo/mainform.ui'),
                             self)

        frameGm = self.frameGeometry()
        screen = QtWidgets.QApplication.desktop().screenNumber(
            QtWidgets.QApplication.desktop().cursor().pos())
        centerPoint = QtWidgets.QApplication.desktop().screenGeometry(
            screen).center()
        frameGm.moveCenter(centerPoint)
        self.move(frameGm.topLeft())

        self.areasTab = QtWidgets.QTabWidget()
        self.areasTab.setTabPosition(QtWidgets.QTabWidget.West)
        self.formTab = QtWidgets.QTabWidget()
        try:
            self.areasTab.removeItem = self.areasTab.removeTab
            self.areasTab.addItem = self.areasTab.addTab
        except Exception:
            pass

        self.dockAreasTab = QtWidgets.QDockWidget()
        self.dockAreasTab.setWindowTitle("Módulos")
        #self.dockAreas = QtWidgets.QDockWidget()
        self.dockFavoritos = QtWidgets.QDockWidget()
        self.dockFavoritos.setWindowTitle("Favoritos")

        self.dockForm = QtWidgets.QDockWidget()

        self.dockAreasTab.setWidget(self.areasTab)
        self.dockAreasTab.setMaximumWidth(400)
        self.dockFavoritos.setMaximumWidth(400)
        self.dockFavoritos.setMaximumHeight(500)
        # self.dockAreasTab.setMinimumWidth(400)
        # self.dockAreasTab.setMaximumHeight(500)

        self.dockForm.setWidget(self.formTab)

        self.addDockWidget(Qt.RightDockWidgetArea, self.dockForm)
        # self.dockForm.setMaximumWidth(950)
        self.addDockWidget(Qt.LeftDockWidgetArea, self.dockFavoritos)
        self.addDockWidget(Qt.LeftDockWidgetArea, self.dockAreasTab)
        # self.dockAreasTab.show()
        # self.dockForm.show()

        # self.areasTab.removeItem(0) #Borramos tab de ejemplo.

        self.formTab.setTabsClosable(True)
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        self.formTab.tabCloseRequested[int].connect(self.closeFormTab)
        self.formTab.removeTab(0)
        #app_icon = QtGui.QIcon('share/icons/pineboo-logo-16.png')
        # app_icon.addFile(filedir('share/icons/pineboo-logo-16.png'),
        #                 QtCore.QSize(16, 16))
        # app_icon.addFile(filedir('share/icons/pineboo-logo-24.png'),
        #                 QtCore.QSize(24, 24))
        # app_icon.addFile(filedir('share/icons/pineboo-logo-32.png'),
        #                 QtCore.QSize(32, 32))
        # app_icon.addFile(filedir('share/icons/pineboo-logo-48.png'),
        #                 QtCore.QSize(48, 48))
        # app_icon.addFile(filedir('share/icons/pineboo-logo-64.png'),
        #                 QtCore.QSize(64, 64))
        # app_icon.addFile(filedir('share/icons/pineboo-logo-128.png'),
        #                 QtCore.QSize(128, 128))
        # app_icon.addFile(filedir('share/icons/pineboo-logo-256.png'),
        #                 QtCore.QSize(256, 256))
        # self.setWindowIcon(app_icon)
        self.setWindowIcon(QtGui.QIcon('share/icons/pineboo-logo-16.png'))
        self.actionAcercaQt.triggered.connect(pineboolib.main.aboutQt)
        self.actionAcercaPineboo.triggered.connect(
            pineboolib.main.aboutPineboo)
        self.actionFavoritos.triggered.connect(self.changeStateDockFavoritos)
        self.dockFavoritos.visibilityChanged.connect(
            self.changeStateActionFavoritos)
        self.actionModulos.triggered.connect(self.changeStateDockAreas)
        self.dockAreasTab.visibilityChanged.connect(
            self.changeStateActionAreas)
        self.actionTipografia.triggered.connect(pineboolib.main.fontDialog)
        self.menuPineboo.addSeparator()
        # self.actionEstilo.triggered.connect(pineboolib.main.styleDialog)
        pineboolib.main.initStyle(self.configMenu)
        self.setWindowTitle("Pineboo")

        logger.info("Módulos y pestañas ...")
        for k, area in sorted(pineboolib.project.areas.items()):
            self.loadArea(area)
        for k, module in sorted(pineboolib.project.modules.items()):
            self.loadModule(module)

        # Cargando Area desarrollo si procede ...
        sett_ = FLSettings()
        if (sett_.readBoolEntry("application/isDebuggerMode", False)):
            areaDevelop = Struct(idarea="dvl", descripcion="Desarrollo")
            self.loadArea(areaDevelop)

            self.loadDevelop()

        self.restoreOpenedTabs()

        self.loadPreferences()
        # Cargamos nombre de vertical
        util = FLUtil()
        verticalName = util.sqlSelect("flsettings", "valor",
                                      "flkey='verticalName'")
        cbPosInfo = util.sqlSelect("flsettings", "valor", "flkey='PosInfo'")

        if verticalName != None:
            statusText = verticalName

        if cbPosInfo == 'True':
            sys_ = SysType()
            statusText += "\t\t\t" + sys_.nameUser() + "@" + sys_.nameDB()

        if verticalName != None:
            self.statusBar().showMessage(statusText)
Exemple #13
0
    def load(self):

        self.ui_ = pineboolib.project.conn.managerModules().createUI(
            filedir('plugins/mainform/pineboo/mainform.ui'), None, self)

        self.w_ = self
        frameGm = self.frameGeometry()
        screen = QApplication.desktop().screenNumber(
            QApplication.desktop().cursor().pos())
        centerPoint = QApplication.desktop().screenGeometry(screen).center()
        frameGm.moveCenter(centerPoint)
        self.move(frameGm.topLeft())

        self.areasTab = QTabWidget()
        self.areasTab.setTabPosition(QTabWidget.West)
        self.formTab = QTabWidget()
        try:
            self.areasTab.removeItem = self.areasTab.removeTab
            self.areasTab.addItem = self.areasTab.addTab
        except Exception:
            pass

        self.dockAreasTab = QDockWidget()
        self.dockAreasTab.setWindowTitle("Módulos")
        #self.dockAreas = QtWidgets.QDockWidget()
        self.dockFavoritos = QDockWidget()
        self.dockFavoritos.setWindowTitle("Favoritos")

        self.dockForm = QDockWidget()

        self.dockConsole = None

        self.dockAreasTab.setWidget(self.areasTab)
        self.dockAreasTab.setMaximumWidth(400)
        self.dockFavoritos.setMaximumWidth(400)
        self.dockFavoritos.setMaximumHeight(500)
        # self.dockAreasTab.setMinimumWidth(400)
        # self.dockAreasTab.setMaximumHeight(500)

        self.dockForm.setWidget(self.formTab)

        self.addDockWidget(Qt.RightDockWidgetArea, self.dockForm)
        # self.dockForm.setMaximumWidth(950)
        self.addDockWidget(Qt.LeftDockWidgetArea, self.dockFavoritos)
        self.addDockWidget(Qt.LeftDockWidgetArea, self.dockAreasTab)
        # self.dockAreasTab.show()
        # self.dockForm.show()

        # self.areasTab.removeItem(0) #Borramos tab de ejemplo.

        self.formTab.setTabsClosable(True)
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        self.formTab.tabCloseRequested[int].connect(self.closeFormTab)
        self.formTab.removeTab(0)
        #app_icon = QtGui.QIcon('share/icons/pineboo-logo-16.png')
        # app_icon.addFile(filedir('share/icons/pineboo-logo-16.png'),
        #                 QtCore.QSize(16, 16))
        # app_icon.addFile(filedir('share/icons/pineboo-logo-24.png'),
        #                 QtCore.QSize(24, 24))
        # app_icon.addFile(filedir('share/icons/pineboo-logo-32.png'),
        #                 QtCore.QSize(32, 32))
        # app_icon.addFile(filedir('share/icons/pineboo-logo-48.png'),
        #                 QtCore.QSize(48, 48))
        # app_icon.addFile(filedir('share/icons/pineboo-logo-64.png'),
        #                 QtCore.QSize(64, 64))
        # app_icon.addFile(filedir('share/icons/pineboo-logo-128.png'),
        #                 QtCore.QSize(128, 128))
        # app_icon.addFile(filedir('share/icons/pineboo-logo-256.png'),
        #                 QtCore.QSize(256, 256))
        # self.setWindowIcon(app_icon)
        self.setWindowIcon(QtGui.QIcon('share/icons/pineboo-logo-16.png'))
        self.actionAcercaQt.triggered.connect(pineboolib.project.aboutQt)
        self.actionAcercaPineboo.triggered.connect(pineboolib.project.aboutPineboo)
        self.actionFavoritos.triggered.connect(self.changeStateDockFavoritos)
        self.dockFavoritos.visibilityChanged.connect(self.changeStateActionFavoritos)
        self.actionModulos.triggered.connect(self.changeStateDockAreas)
        self.dockAreasTab.visibilityChanged.connect(self.changeStateActionAreas)
        self.actionTipografia.triggered.connect(pineboolib.project.chooseFont)
        self.menuPineboo.addSeparator()
        # self.actionEstilo.triggered.connect(pineboolib.main.styleDialog)
        # pineboolib.pnapplication.initStyle(self.configMenu)
        self.setWindowTitle("Pineboo")

        logger.info("Módulos y pestañas ...")
        for k, area in sorted(pineboolib.project.areas.items()):
            self.loadArea(area)
        for k, module in sorted(pineboolib.project.modules.items()):
            self.loadModule(module)

        # Cargando Area desarrollo si procede ...
        sett_ = FLSettings()
        if (sett_.readBoolEntry("application/isDebuggerMode", False)):
            areaDevelop = Struct(idarea="dvl", descripcion="Desarrollo")
            self.loadArea(areaDevelop)

            self.loadDevelop()

        self.restoreOpenedTabs()

        self.loadState()
        # Cargamos nombre de vertical
        util = FLUtil()
        verticalName = util.sqlSelect("flsettings", "valor", "flkey='verticalName'")
        cbPosInfo = util.sqlSelect("flsettings", "valor", "flkey='PosInfo'")

        statusText = ""

        if verticalName != None:
            statusText = verticalName

        if cbPosInfo == 'True':
            from pineboolib.pncontrolsfactory import SysType
            sys_ = SysType()
            statusText += "\t\t\t" + sys_.nameUser() + "@" + sys_.nameBD()

        self.statusBar().showMessage(statusText)
    def __init__(self, database):
        self.db_ = database.DBName()

        self.key_ = "StaticLoader/%s/" % self.db_
        settings = FLSettings()
        self.enabled_ = settings.readBoolEntry("%senabled" % self.key_, False)
Exemple #15
0
    def eventFilter(self, o, e):
        r = self.currentRow()
        c = self.currentColumn()
        nr = self.numRows()
        nc = self.numCols()

        if e.type() == QtCore.QEvent.KeyPress:
            key_event = e

            if key_event.key() == QtCore.Qt.Key_Escape and self.popup_ and self.parentWidget():
                self.parentWidget().hide()
                return True

            if key_event.key() == QtCore.Qt.Key_Insert:
                return True

            if key_event.key() == QtCore.Qt.Key_F2:
                return True

            if key_event.key() == QtCore.Qt.Key_Up and r == 0:
                return True

            if key_event.key() == QtCore.Qt.Key_Left and c == 0:
                return True

            if key_event.key() == QtCore.Qt.Key_Down and r == nr - 1:
                return True

            if key_event.key() == QtCore.Qt.Key_Right and c == nc - 1:
                return True

            if key_event.key() in (QtCore.Qt.Key_Enter, QtCore.Qt.Key_Return) and r > -1:
                self.recordChoosed.emit()
                return True

            if key_event.key() == QtCore.Qt.Key_Space:
                from pineboolib.pncontrolsfactory import FLCheckBox
                chk = FLCheckBox(self.cellWidget(r, c))
                if chk:
                    chk.animateClick()

            settings = FLSettings()
            if not settings.readBoolEntry("ebcomportamiento/FLTableShortCut", False):
                if key_event.key() == QtCore.Qt.Key_A and not self.popup_:
                    if self.cursor_ and not self.readonly_ and not self.editonly_ and not self.onlyTable_:

                        self.cursor_.insertRecord()
                        return True
                    else:
                        return False

                if key_event.key() == QtCore.Qt.Key_C and not self.popup_:
                    if self.cursor_ and not self.readonly_ and not self.editonly_ and not self.onlyTable_:
                        self.cursor_.copyRecord()
                        return True
                    else:
                        return False

                if key_event.key() == QtCore.Qt.Key_M and not self.popup_:
                    if self.cursor_ and not self.readonly_ and not self.onlyTable_:
                        self.cursor_.editRecord()
                        return True
                    else:
                        return False

                if key_event.key() == QtCore.Qt.Key_Delete and not self.popup_:
                    if self.cursor_ and not self.readonly_ and not self.editonly_ and not self.onlyTable_:
                        self.cursor_.deleteRecord()
                        return True
                    else:
                        return False

                if key_event.key() == QtCore.Qt.Key_V and not self.popup_:
                    if self.cursor_ and not self.onlyTable_:
                        self.cursor_.browseRecord()
                        return True

            return False

        return super(FLDataTable, self).eventFilter(o, e)
Exemple #16
0
    def process_layout_box(xmllayout, widget=widget, mode="box"):
        for c in xmllayout:
            try:
                row = int(c.get("row"))
                col = int(c.get("column"))
            except Exception:
                row = col = None

            if c.tag == "property":  # Ya se han procesado previamente ...
                continue
            elif c.tag == "widget":
                new_widget = createWidget(c.get("class"), parent=widget)
                loadWidget(c, new_widget, parent, origWidget)
                path = c.find("./property[@name='name']/cstring").text
                if not pineboolib.project._DGI.localDesktop():
                    origWidget.ui_[path] = new_widget
                if pineboolib.project._DGI.localDesktop():
                    new_widget.show()
                if mode == "box":
                    if pineboolib.project._DGI.localDesktop():
                        widget.layout.addWidget(new_widget)
                elif mode == "grid":
                    if pineboolib.project._DGI.localDesktop():
                        rowSpan = c.get("rowspan") or 1
                        colSpan = c.get("colspan") or 1
                        widget.layout.addWidget(new_widget, row, col, int(rowSpan), int(colSpan))
            elif c.tag == "spacer":
                sH = None
                sV = None
                hPolicy = QtWidgets.QSizePolicy.Fixed
                vPolicy = QtWidgets.QSizePolicy.Fixed
                orient_ = None
                policy_ = None
                policy_name = None
                spacer_name = None
                for p in c.findall("property"):
                    pname, value = loadProperty(p)
                    if pname == "sizeHint":
                        width = value.width()
                        height = value.height()
                    elif pname == "orientation":
                        orient_ = 1 if value == 1 else 2  # 1 Horizontal, 2 Vertical

                    elif pname == "sizeType":
                        #print("Convirtiendo %s a %s" % (p.find("enum").text, value))
                        from pineboolib.fllegacy.FLSettings import FLSettings
                        settings = FLSettings()

                        if settings.readBoolEntry("ebcomportamiento/spacerLegacy", False):
                            policy_ = QtWidgets.QSizePolicy.Policy(value)
                        else:
                            policy_ = 7  # Siempre Expanding

                    elif pname == "name":
                        spacer_name = value

                if orient_ == 1:
                    hPolicy = policy_
                else:
                    vPolicy = policy_

                # print("Nuevo spacer %s (%s,%s,(%s,%s), %s, %s" % (spacer_name, "Horizontal" if orient_ ==
                #                                                  1 else "Vertical", policy_name, width, height, hPolicy, vPolicy))
                new_spacer = QtWidgets.QSpacerItem(width, height, hPolicy, vPolicy)
                widget.layout.addItem(new_spacer)
                #print("Spacer %s.%s --> %s" % (spacer_name, new_spacer, widget.objectName()))
            else:
                logger.warn("qt3ui: Unknown layout xml tag", repr(c.tag))

        widget.setLayout(widget.layout)