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
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
def mouseDoubleClickEvent(self, e): if e.button() != QtCore.Qt.LeftButton: return settings = FLSettings() if not settings.readBoolEntry("ebcomportamiento/FLTableDoubleClick", False): self.recordChoosed.emit()
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)
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
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() """
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_))
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
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_)
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)
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)
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)
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)
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)