def app(args): application = QApplication(args) PResource.initResource() Manage.initResource() window = MainWindow() window.showMaximized() try: a = application.exec_() except Exception as ex: a = -1 logging.exception(ex) return a
def __init__(self): super().__init__() self.searchBar = QLineEdit() self.searchBar.setPlaceholderText("Search..") self.searchBar.textChanged.connect(self.searchFile) self.searchBar.setFixedHeight(36) self.addButton = QToolButton() self.addButton.setIcon(PResource.defaultIcon(Parapluie.Icon_Plus_Svg)) self.addButton.setFixedSize(36, 36) self.addButton.pressed.connect(self.newFile) self.openButton = QToolButton() self.openButton.setIcon( PResource.defaultIcon(Parapluie.Icon_Folder_Svg)) self.openButton.setFixedSize(36, 36) self.openButton.pressed.connect(self.openFile) topBar = QHBoxLayout() topBar.addWidget(self.searchBar) topBar.addWidget(self.openButton) topBar.addWidget(self.addButton) self.listDataWidget = QListWidget() self.listDataWidget.setObjectName(Parapluie.Object_Raised_Off) self.listDataWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.listDataWidget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.listDataWidget.horizontalScrollBar().setEnabled(False) self.listDataWidget.setSpacing(3) layout = QVBoxLayout() layout.setContentsMargins(8, 8, 0, 8) layout.addLayout(topBar) layout.addSpacing(8) layout.addWidget(self.listDataWidget) self.setObjectName(Parapluie.Object_Raised_Off) self.setLayout(layout) self.dataList = [] self.dataSource = [] self.dataTemp = [] self.currentFile = None self.newCount = -1 self.listAdapter = JsonAdapter(self, self.listDataWidget, self.dataList, self.onItemSelected, self.onItemClosed) self.loadFile()
def __init__(self): super().__init__() Util.Style.applyStyle(self) Util.Style.applyWindowTitle(self) Util.Style.applyWindowIcon(self) self.stack = QStackedWidget() self.stackList = {} self.jsonView = None self.requestView = None mainToolbar = QToolBar() mainToolbar.setMovable(False) topWidget = QWidget() topWidget.setFixedHeight(8) mainToolbar.addWidget(topWidget) self.requestAction = mainToolbar.addAction( PResource.invertIcon(Parapluie.Icon_Link_Svg), "Request", self.showRequest) self.requestAction.setCheckable(True) self.jsonAction = mainToolbar.addAction( PResource.invertIcon(Parapluie.Icon_Web_Development_Svg), "Viewer", self.showJSONViewer) self.jsonAction.setCheckable(True) stretchWidget = QWidget() stretchWidget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) mainToolbar.addWidget(stretchWidget) mainToolbar.addAction( PResource.invertIcon(Parapluie.Icon_Information_Svg), "Information", self.openAbout) self.addToolBar(Qt.LeftToolBarArea, mainToolbar) bottomWidget = QWidget() bottomWidget.setFixedHeight(8) mainToolbar.addWidget(bottomWidget) self.stack.currentChanged.connect(self.stackChange) self.setCentralWidget(self.stack) self.setContentsMargins(0, 0, 0, 0) self.showRequest()
def __init__(self, editType: EditorType = EditorType.Manual, save: bool = True, sync: bool = True): super().__init__() self.editor = TextEditor() self.editor.keyEvent.connect(self.editorEvent) tool = QHBoxLayout() if save: iconSize = 36 else: iconSize = 24 if save: self.title = PLabelEdit() self.title.setMaximumWidth(300) self.title.setFixedHeight(iconSize) self.title.setMaximumHeight(iconSize) self.title.setStyleSheet("QLabel{color:#424242; font-size:16px}") self.title.setText("Untitled") tool.addWidget(self.title) tool.addStretch() if editType == EditorType.Manual: self.editorTypeBox = PComboBox() self.editorTypeBox.setView(MiniView.listView()) self.editorTypeBox.addItems(["Text", "JSON", "XML", "HTML"]) self.editorTypeBox.currentIndexChanged.connect( self.editorTypeChange) tool.addWidget(self.editorTypeBox) self.wrapButton = QToolButton() self.wrapButton.setCheckable(True) self.wrapButton.setText("Wrap") self.wrapButton.setToolTip("Wrap/Unwrap (Ctrl+W)") self.wrapButton.setIcon( PResource.defaultIcon(Parapluie.Icon_Wrap_Text_Svg)) self.wrapButton.setFixedSize(iconSize, iconSize) self.wrapButton.pressed.connect(self.wrapText) tool.addWidget(self.wrapButton) formatButton = QToolButton() formatButton.setText("Format") formatButton.setToolTip("Format Code (Ctrl+F)") formatButton.setIcon( PResource.defaultIcon(Parapluie.Icon_Clean_Code_Svg)) formatButton.setFixedSize(iconSize, iconSize) formatButton.pressed.connect(self.formatText) tool.addWidget(formatButton) if save: saveButton = QToolButton() saveButton.setText("Save") saveButton.setToolTip("Save (Ctrl+S)") saveButton.setIcon(PResource.defaultIcon(Parapluie.Icon_Save_Svg)) saveButton.setFixedSize(iconSize, iconSize) saveButton.pressed.connect(self.saveData) tool.addWidget(saveButton) if sync: syncButton = QToolButton() syncButton.setText("Sync") syncButton.setToolTip("Sync (Ctrl+B)") syncButton.setIcon( PResource.defaultIcon(Parapluie.Icon_Double_Right_Chevron_Svg)) syncButton.setFixedSize(iconSize, iconSize) syncButton.pressed.connect(self.syncJson) tool.addWidget(syncButton) widget = QWidget() widget.setLayout(tool) widget.layout().setContentsMargins(8, 0, 8, 0) widget.setObjectName(Parapluie.Object_Editor_Header) widget.setMaximumHeight(iconSize) layout = QVBoxLayout() layout.addWidget(widget) layout.addWidget(self.editor) self.setLayout(layout) self.layout().setContentsMargins(5, 5, 5, 5) self.setObjectName(Parapluie.Object_Editor) self.currentFile = None self.editType = EditorType.Text self.setEditorType(EditorType.Text)
def __init__(self): super().__init__() # line 1 self.apiType = PComboBox() self.apiType.setFixedWidth(100) self.apiType.setView(listView()) self.apiType.addItem("GET") self.apiType.addItem("POST") self.apiType.addItem("PUT") self.apiType.addItem("HEAD") self.apiType.addItem("DELETE") self.apiType.addItem("PATCH") self.apiType.addItem("OPTIONS") self.apiType.setObjectName(Parapluie.Object_ColorComboBox) self.apiURL = QLineEdit() self.apiURL.setPlaceholderText("API..") l1 = QHBoxLayout() l1.setSpacing(10) l1.addWidget(self.apiType) l1.addWidget(self.apiURL) # line 2 addLink = QToolButton() addLink.setIcon(PResource.defaultIcon(Parapluie.Icon_Plus_Svg)) addLink.setIconSize(QSize(12, 12)) addLink.setFixedSize(32, 32) addLink.pressed.connect(self.openApiLinkEdit) self.apiLink = PComboBox() self.apiLink.setView(listView()) self.apiLink.setSizeAdjustPolicy( QComboBox.AdjustToMinimumContentsLength) apiBar = QHBoxLayout() apiBar.setSpacing(6) apiBar.setContentsMargins(0, 0, 0, 0) apiBar.addWidget(self.apiLink, stretch=1) apiBar.addWidget(addLink) l2 = QFormLayout() l2.setVerticalSpacing(6) l2.setHorizontalSpacing(10) l2.addRow(formLabel("API Link:"), apiBar) # line 3 self.bodyWidget = RequestBody() self.bodyWidget.editor.alert.connect( lambda a, b, c, d: self.alert.emit(a, b, c, d)) self.paramWidget = ParamEditor(ParamType.Param) self.headerWidget = ParamEditor(ParamType.Param) self.tab = PTabWidget() self.tab.resizable(True) self.tab.setSizeBox(300, 1000, 200) self.tab.sizeBox.setValue(400) self.tab.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.tab.addTab(self.headerWidget, "Header") self.tab.addTab(self.paramWidget, "Param") self.tab.addTab(self.bodyWidget, "Body") lLeft = QVBoxLayout() lLeft.setContentsMargins(0, 0, 0, 0) lLeft.setAlignment(Qt.AlignTop) lLeft.addLayout(l1) lLeft.addLayout(l2) lLeft.addSpacing(15) lLeft.addWidget(self.tab) wLeft = PWidget() wLeft.setLayout(lLeft) wLeft.setObjectName(Parapluie.Object_Raised) self.description = QTextEdit() self.description.setMinimumHeight(300) self.description.setMaximumHeight(300) self.categories = PEditor() form = QFormLayout() form.setVerticalSpacing(6) form.setHorizontalSpacing(6) form.addRow(formLabel("Categories:", False), self.categories) form.addRow(formLabel("Description:", False), self.description) lRight = QVBoxLayout() lRight.setContentsMargins(0, 0, 10, 0) lRight.addLayout(form) lRight.addStretch() lRight.addStretch() wRight = PWidget() wRight.setLayout(lRight) wRight.setObjectName(Parapluie.Object_Raised) self.addWidget(wLeft) self.addWidget(wRight) self.setObjectName(Parapluie.Object_QSplitter) self.setChildrenCollapsible(False) self.setStretchFactor(0, 4) self.setStretchFactor(1, 3) self.dialog = RequestLink( self, QRect(QPoint(0, 0), QApplication.primaryScreen().size())) self.dialog.getData() self.updateAPILink()
def __init__(self): super().__init__() # self.setMaximumWidth(600) self.setObjectName(Parapluie.Object_Raised_Off) self.backButton = QToolButton() self.backButton.setIcon( PResource.defaultIcon(Parapluie.Icon_Left_Arrow_Svg)) self.backButton.setFixedSize(36, 36) self.backButton.pressed.connect(self.onBackPressed) self.searchBar = QLineEdit() self.searchBar.setPlaceholderText("Search..") self.searchBar.textChanged.connect(self.searchFile) self.searchBar.setFixedHeight(36) self.addButton = QToolButton() self.addButton.setIcon(PResource.defaultIcon(Parapluie.Icon_Plus_Svg)) self.addButton.setFixedSize(36, 36) self.addButton.pressed.connect(self.newFile) self.openButton = QToolButton() self.openButton.setIcon( PResource.defaultIcon(Parapluie.Icon_Folder_Svg)) self.openButton.setFixedSize(36, 36) self.openButton.pressed.connect(self.openFile) topBar = QHBoxLayout() topBar.addWidget(self.backButton) topBar.addWidget(self.searchBar) topBar.addWidget(self.openButton) topBar.addWidget(self.addButton) self.listDataWidget = QListWidget() self.listDataWidget.setContentsMargins(0, 0, 0, 0) # self.listDataWidget.setObjectName(Parapluie.Object_Raised) self.listDataWidget.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.listDataWidget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.listDataWidget.horizontalScrollBar().setEnabled(False) self.listDataWidget.setSpacing(3) self.gridData = PGridWidget(2) # self.gridData.setObjectName(Parapluie.Object_Raised) self.gridData.setContentsMargins(0, 0, 0, 0) self.gridData.setHorizontalSpacing(5) self.gridData.setVerticalSpacing(5) self.gridData.setFixColumn(True) self.gridData.setRowHeight(100) self.gridData.setAlignment(Qt.AlignTop | Qt.AlignLeft) self.stacked = QStackedWidget() self.stacked.addWidget(self.gridData) self.stacked.addWidget(self.listDataWidget) self.stacked.currentChanged.connect(self.tabChange) layout = QVBoxLayout() layout.addLayout(topBar) layout.addWidget(self.stacked) layout.setContentsMargins(8, 8, 0, 8) self.setLayout(layout) self.categoriesChange = None self.dataList = [] # combine self.categories = [] # string self.dataSource = XashList() self.dataTemp = [] # xfile self.listFile = [] # xfile self.currentFile = None self.newCount = -1 self.lastSearch = {1: "", 0: ""} self.listAdapter = ItemAdapter(self, self.listDataWidget, self.dataList, self.dataSource, self.onItemSelected, self.onItemClosed) gridAdapter = GridAdapter(data=self.categories) gridAdapter.setOnItemClick(self.onCategoriesClicked) self.gridData.setAdapter(gridAdapter) self.stacked.setCurrentIndex(1) self.tabChange(1) self.loadFile()
def style() -> str: return PResource.stylesheet()
def __init__(self, window): super().__init__() self.param = RequestParam() self.param.alert.connect(lambda a, b, c, d: self.alert.emit(a, b, c, d)) self.result = RequestResult() self.result.alert.connect(lambda a, b, c, d: self.alert.emit(a, b, c, d)) clearButton = QToolButton() clearButton.setText("Clear") clearButton.setToolTip("Clear (Ctrl+D)") clearButton.setIcon(PResource.defaultIcon(Parapluie.Icon_Clear_All_Svg)) clearButton.setFixedSize(36, 36) clearButton.pressed.connect(self.clearAll) saveButton = QToolButton() saveButton.setText("Save") saveButton.setToolTip("Save (Ctrl+S)") saveButton.setIcon(PResource.defaultIcon(Parapluie.Icon_Save_Svg)) saveButton.setFixedSize(36, 36) saveButton.pressed.connect(self.saveData) runButton = QToolButton() runButton.setText("Run") runButton.setToolTip("Run (Ctrl+R)") runButton.setIcon(PResource.defaultIcon(Parapluie.Icon_Play_Button_Svg)) runButton.setFixedSize(36, 36) runButton.pressed.connect(self.run) self.category = self.param.categories self.title = PLabelEdit() self.title.setFixedHeight(36) self.title.setMaximumHeight(36) self.title.setStyleSheet("QLabel{color:#424242; font-size:16px}") self.title.setText("Untitled") tool = QHBoxLayout() tool.addSpacing(10) tool.addWidget(self.title) tool.addStretch() tool.addWidget(clearButton) tool.addWidget(runButton) tool.addWidget(saveButton) widget = QWidget() widget.setLayout(tool) widget.layout().setContentsMargins(8, 4, 8, 4) widget.setObjectName(Parapluie.Object_TopHeader) widget.setMaximumHeight(44) PFunction.applyShadow(widget) workLayout = QVBoxLayout() workLayout.addWidget(self.param) workLayout.addSpacing(20) workLayout.addWidget(self.result) workLayout.setContentsMargins(8, 8, 8, 8) workspace = PWidget() workspace.setLayout(workLayout) workspace.setObjectName(Parapluie.Object_Raised) scroll = QScrollArea() scroll.setWidget(workspace) scroll.setWidgetResizable(True) scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) layout = QVBoxLayout() layout.setSpacing(10) layout.setAlignment(Qt.AlignTop) layout.addWidget(widget) layout.addWidget(scroll) layout.setContentsMargins(0, 0, 0, 10) outer = PWidget() outer.setObjectName(Parapluie.Object_TopHeader) outer.setLayout(layout) outerLayout = QHBoxLayout() outerLayout.addWidget(outer) self.setLayout(outerLayout) self.layout().setContentsMargins(0, 5, 5, 10) self.currentFile: XFile = None self.win = window self.onSaveFunc = None
def __init__(self, parent: QWidget, inner: bool = False): if not inner: super().__init__() self.inner = inner self.__parent__ = parent if self.__parent__ is not None: self.__central_widget__ = None self.__follow__ = False self.HAnchor = Parapluie.HCenter self.VAnchor = Parapluie.VCenter self.__update_distance__ = False self.__const_hDistance__ = False self.__const_vDistance__ = False self.leftDistance = 0 self.rightDistance = 0 self.topDistance = 0 self.bottomDistance = 0 PFunction.applyStyle(self, PResource.stylesheet()) self.setWindowFlags(Qt.FramelessWindowHint) self.setObjectName(Parapluie.Object_StickyWindow) self.title = QLabel("Parapluie") self.title.setStyleSheet("font-size: 14px; font-weight: bold;") self.title.setContentsMargins(8, 0, 8, 0) self.title.setMinimumHeight(self.__title_bar_height__) self.bottom_sizeGrip = QSizeGrip(self) self.bottom_sizeGrip.setObjectName(Parapluie.Object_StickyWindow_ResizeBottom) self.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.titleBar = QHBoxLayout() self.titleBar.setContentsMargins(0, 0, 0, 0) self.titleBar.addWidget(self.title, alignment=Qt.AlignLeft | Qt.AlignCenter) self.titleBar.addStretch() self.moveWidget = PMoveWidget(self) self.moveWidget.setObjectName(Parapluie.Object_StickyWindow_FunctionButton) self.moveWidget.setLayout(self.titleBar) self.moveWidget.setMaximumHeight(self.__title_bar_height__) self.mainLayout = QVBoxLayout() self.mainLayout.setContentsMargins(self.__window_margin__, self.__window_margin__, self.__window_margin__, self.__window_margin__) self.mainLayout.setSpacing(0) self.mainLayout.addWidget(self.moveWidget, alignment=Qt.AlignTop) self.mainLayout.addWidget(self.bottom_sizeGrip, alignment=Qt.AlignRight) self.setLayout(self.mainLayout) if isinstance(parent, Sticky.PWindow): self.updateDistance() parent.resized.connect(self.followParentRelative) parent.closed.connect(self.close) parent.minimized.connect(self.minimizedFollowParent)