def __init__(self):
     super().__init__()
     self.default_options = dict(
         login_file="",
         proxie_file="",
         path_to_tmp_files=path.join(os.getcwd(), 'tmp')
     )
     self.options = dict(**self.default_options)
     if path.exists(CONFIG_FILE):
         with open(CONFIG_FILE) as f:
             self.options.update(json.load(f))
     self.setupUi(self)
     self.table = MessagesModel()
     self.sorter_filter_table = MessageFilterSortProxy(self)
     self.sorter_filter_table.setSourceModel(self.table)
     self.sorter_filter_table.setDynamicSortFilter(True)
     self.table.insertRow(Message(login="******", proxie="22", text="33", status=0))
     self.tableView.setModel(self.sorter_filter_table)
     self.lineEdit.setText(self.options['path_to_tmp_files'])
     self.lineEdit_2.setText(self.options['login_file'])
     self.lineEdit_3.setText(self.options['proxie_file'])
     self.lineEdit_4.textChanged.connect(self.changeSettings)
     self.action.triggered.connect(self.open_file_login)
     self.action_2.triggered.connect(self.open_file_proxie)
     self.action_3.triggered.connect(self.clearOptions)
     self.action_4.triggered.connect(self.get_path_to_tmp_files)
     self.pushButton.clicked.connect(self.start_parser)
     self.pushButton_2.clicked.connect(self.stop_parser)
     self.qerrormessage = QErrorMessage(self)
     for i in range(10):
         self.table.insertRow(Message(login="******", proxie="22", text="33", status=i))
     self.show()
Пример #2
0
    def _action_export_image(self):
        """
        Export images as either .png or .jpg to the destination folder using the current configuration.
        """
        import cv2
        # Error check
        if self.ui.files_listWidget.count() == 0:
            mb = QErrorMessage(self)
            mb.showMessage(self.tr("Please specify source image directories first!"))
            return

        write_dir = QFileDialog.getSaveFileName(self, self.tr("Write Current Image"), "",
                                                'JPG (*.jpg);;PNG (*.png)')
        if write_dir is None:
            # terminate
            self._logger.info("Cancelled write.")

        self._logger.info(f"Writing to: {write_dir[0]}")

        # Skip files if its not in keys-to-write if it exists
        todraw = self.draw_worker.get_result()
        print(todraw.shape)

        try:
            todraw = cv2.cvtColor(todraw, cv2.COLOR_RGB2BGR)
            cv2.imwrite(write_dir[0], todraw)
        except Exception as e:
            self._logger.error("Encounter error during write: {}".format(e))
            self._logger.log_traceback(e)
Пример #3
0
 def dropEvent(self, evt):
     urls = evt.mimeData().urls()
     if len(urls) != 1:
         errMsg = QErrorMessage()
         errMsg.showMessage("Drop exactly single rbs file!")
     else:
         self.loadTelemetry(urls[0].toLocalFile())
 def __init__(self, parent: QWidget):
     super().__init__(parent, 'Select Data Directory')
     self.setFileMode(QFileDialog.DirectoryOnly)
     options = QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks
     self.setOptions(options)
     self.setViewMode(QFileDialog.Detail)
     self.error_message = QErrorMessage(self)
Пример #5
0
    def __init__(self, node_set: NodeSet):
        super().__init__('Bitcoin Data Directory')
        self.error_message = QErrorMessage(self)

        self.node_set = node_set
        self.datadir = self.node_set.bitcoin.file['datadir']
        self.datadir_label = QLabel()
        self.datadir_label.setText(self.datadir)
        self.datadir_label.setAlignment(Qt.AlignCenter | Qt.AlignCenter)
        self.datadir_label.setFixedHeight(50)

        self.prune_warning_label = QLabel()
        new_font: QFont = self.prune_warning_label.font()
        new_font.setPointSize(8)
        self.prune_warning_label.setFont(new_font)
        self.prune_warning_label.setAlignment(Qt.AlignCenter | Qt.AlignCenter)
        self.display_pruning_warning()

        self.show_directory_button = QtWidgets.QPushButton('Show Directory')
        # noinspection PyUnresolvedReferences
        self.show_directory_button.clicked.connect(
            lambda: reveal(self.datadir))

        self.select_directory_button = QtWidgets.QPushButton(
            'Select Directory')
        # noinspection PyUnresolvedReferences
        self.select_directory_button.clicked.connect(self.file_dialog)

        layout = QtWidgets.QGridLayout()
        layout.addWidget(self.datadir_label, 1, 1, 1, 2)
        layout.addWidget(self.prune_warning_label, 2, 1, 1, 2)
        layout.addWidget(self.show_directory_button, 3, 1)
        layout.addWidget(self.select_directory_button, 3, 2)
        self.setLayout(layout)
        self.setFixedWidth(self.minimumSizeHint().width())
Пример #6
0
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Node Launcher')
        self.message_box = QMessageBox(self)
        self.error_message = QErrorMessage(self)
        self.message_box.setTextFormat(Qt.RichText)
        try:
            self.testnet_group_box = NetworkWidget(network=TESTNET)
            self.mainnet_group_box = NetworkWidget(network=MAINNET)
        except ZmqPortsNotOpenError as e:
            self.error_message.showMessage(str(e))
            self.error_message.exec_()
            sys.exit(0)

        self.data_directory_group_box = DataDirectoryBox()
        self.data_directory_group_box.file_dialog.new_data_directory.connect(
            self.change_datadir)
        self.data_directory_group_box.set_datadir(
            self.mainnet_group_box.node_set.bitcoin.file['datadir'],
            self.mainnet_group_box.node_set.bitcoin.file['prune'])

        self.network_grid = Tabs(self,
                                 mainnet=self.mainnet_group_box,
                                 testnet=self.testnet_group_box)

        self.grid = QVBoxLayout()
        self.grid.addStretch()
        self.grid.addWidget(self.data_directory_group_box)
        self.grid.addWidget(self.network_grid)
        self.grid.setAlignment(self.data_directory_group_box, Qt.AlignHCenter)
        self.setLayout(self.grid)

        self.check_version()
    def __init__(self, data_connection):
        """Initialize class."""
        from ..ui.spine_datapackage_form import Ui_MainWindow  # pylint: disable=import-outside-toplevel

        super().__init__(
            flags=Qt.Window
        )  # TODO: Set parent as toolbox here if it makes sense
        # TODO: Maybe set the parent as ToolboxUI so that its stylesheet is inherited. This may need
        # TODO: reimplementing the window minimizing and maximizing actions as well as setting the window modality
        self._data_connection = data_connection
        self.datapackage = None
        self.descriptor_tree_context_menu = None
        self.selected_resource_name = None
        self.resource_data = dict()
        self.resources_model = DatapackageResourcesModel(self)
        self.fields_model = DatapackageFieldsModel(self)
        self.foreign_keys_model = DatapackageForeignKeysModel(self)
        self.resource_data_model = MinimalTableModel(self)
        self.default_row_height = QFontMetrics(QFont("", 0)).lineSpacing()
        max_screen_height = max(
            [s.availableSize().height() for s in QGuiApplication.screens()])
        self.visible_rows = int(max_screen_height / self.default_row_height)
        self.err_msg = QErrorMessage(self)
        self.remove_row_icon = QIcon(":/icons/minus.png")
        self.progress_bar = QProgressBar()
        self.progress_bar.hide()
        self.focus_widget = None  # Last widget which had focus before showing a menu from the menubar
        #  Set up the user interface from Designer.
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.setWindowIcon(QIcon(":/symbols/app.ico"))
        self.qsettings = QSettings("SpineProject", "Spine Toolbox")
        self.restore_ui()
        self.add_toggle_view_actions()
        # Add status bar to form
        self.ui.statusbar.setFixedHeight(20)
        self.ui.statusbar.setSizeGripEnabled(False)
        self.ui.statusbar.setStyleSheet(STATUSBAR_SS)
        self.ui.statusbar.addPermanentWidget(self.progress_bar)
        self.ui.tableView_resources.setModel(self.resources_model)
        self.ui.tableView_fields.setModel(self.fields_model)
        self.ui.tableView_foreign_keys.setModel(self.foreign_keys_model)
        self.ui.tableView_resource_data.setModel(self.resource_data_model)
        self.ui.tableView_resources.verticalHeader().setDefaultSectionSize(
            self.default_row_height)
        self.ui.tableView_resource_data.verticalHeader().setDefaultSectionSize(
            self.default_row_height)
        self.ui.tableView_resource_data.horizontalHeader(
        ).setResizeContentsPrecision(self.visible_rows)
        self.ui.tableView_fields.verticalHeader().setDefaultSectionSize(
            self.default_row_height)
        self.ui.tableView_fields.horizontalHeader().setResizeContentsPrecision(
            self.visible_rows)
        self.ui.tableView_foreign_keys.verticalHeader().setDefaultSectionSize(
            self.default_row_height)
        self.ui.tableView_foreign_keys.horizontalHeader(
        ).setResizeContentsPrecision(self.visible_rows)
        self.connect_signals()
        # Ensure this window gets garbage-collected when closed
        self.setAttribute(Qt.WA_DeleteOnClose)
Пример #8
0
    def __init__(self, node_set: NodeSet):
        super(LndWalletLayout, self).__init__()
        self.node_set = node_set
        self.password_dialog = QInputDialog()
        self.error_message = QErrorMessage()

        self.state = None

        self.threadpool = QThreadPool()

        columns = 2
        self.addWidget(SectionName('LND Wallet'), column_span=columns)
        wallet_buttons_layout = QtWidgets.QHBoxLayout()
        # Unlock wallet button
        self.unlock_wallet_button = QtWidgets.QPushButton('Unlock')
        # noinspection PyUnresolvedReferences
        self.unlock_wallet_button.clicked.connect(self.unlock_wallet)
        wallet_buttons_layout.addWidget(self.unlock_wallet_button)

        # Create wallet button
        self.create_wallet_button = QtWidgets.QPushButton('Create')
        # noinspection PyUnresolvedReferences
        self.create_wallet_button.clicked.connect(self.create_wallet)
        wallet_buttons_layout.addWidget(self.create_wallet_button,
                                        same_row=True,
                                        column=2)

        # Recover wallet button
        self.recover_wallet_button = QtWidgets.QPushButton('Recover')
        # noinspection PyUnresolvedReferences
        self.recover_wallet_button.clicked.connect(self.recover_wallet)
        wallet_buttons_layout.addWidget(self.recover_wallet_button)
        self.addLayout(wallet_buttons_layout, column_span=columns)

        self.addWidget(HorizontalLine(), column_span=columns)
Пример #9
0
    def __init__(self, command_generator: CommandGenerator):
        super().__init__('Bitcoin Data Directory')
        self.error_message = QErrorMessage(self)

        self.command_generator = command_generator
        self.datadir = self.command_generator.testnet.bitcoin.file.datadir
        self.datadir_label = QLabel()
        self.datadir_label.setText(self.datadir)
        self.datadir_label.setAlignment(Qt.AlignCenter | Qt.AlignCenter)
        self.datadir_label.setFixedHeight(50)

        self.show_directory_button = QtWidgets.QPushButton('Show Directory')
        self.show_directory_button.clicked.connect(
            lambda: reveal(self.datadir))

        self.select_directory_button = QtWidgets.QPushButton(
            'Select Directory')
        self.select_directory_button.clicked.connect(self.file_dialog)

        layout = QtWidgets.QGridLayout()
        layout.addWidget(self.datadir_label, 1, 1, 1, 2)
        layout.addWidget(self.show_directory_button, 2, 1)
        layout.addWidget(self.select_directory_button, 2, 2)

        self.setLayout(layout)
Пример #10
0
 def _on_compile_clicked(self):
     try:
         content = self.editor.toPlainText()
         compile(content)
     except:
         error_dialog = QErrorMessage(self)
         error_dialog.showMessage('Unknown token')
Пример #11
0
    def roi_view_click(self, event):
        if event.button() == QtCore.Qt.RightButton:
            if self.image_item.raiseContextMenu(event):
                event.accept()
        try:
            if hasattr(self.main_widget.data_handler,
                       "pixel_with_rois_flat") and self.main_widget.data_handler.pixel_with_rois_flat is not None:
                pos = event.pos()

                y = int(pos.x())
                x = int(pos.y())
                if self.select_mode == "magic":
                    self.magic_wand(x, y)
                    print("Done generating ROI")
                elif self.select_pixel_on:
                    event.accept()
                    self.pixel_paint(x, y)

                else:
                    super().roi_view_click(event)
            elif self.select_pixel_on or self.select_mode == "magic":
                error_dialog = QErrorMessage(self.main_widget.main_window)
                error_dialog.showMessage(
                    "Something has changed, please regenerate ROIs")
        except ValueError as e:
            if "shape" in e.args[0]:
                self.reset_view()
Пример #12
0
    def __init__(self, db_mngr, *db_urls):
        """Initializes form.

        Args:
            db_mngr (SpineDBManager): The manager to use
            *db_urls (tuple): Database url, codename.
        """
        super().__init__(flags=Qt.Window)
        from ..ui.data_store_view import Ui_MainWindow

        self.db_urls = list(db_urls)
        self.db_url = self.db_urls[0]
        self.db_mngr = db_mngr
        self.db_maps = [
            self.db_mngr.get_db_map_for_listener(self, url, codename=codename)
            for url, codename in self.db_urls
        ]
        self.db_map = self.db_maps[0]
        # Setup UI from Qt Designer file
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.takeCentralWidget()
        self.setWindowIcon(QIcon(":/symbols/app.ico"))
        self.setStyleSheet(MAINWINDOW_SS)
        self.setAttribute(Qt.WA_DeleteOnClose)
        self.qsettings = QSettings("SpineProject", "Spine Toolbox")
        self.err_msg = QErrorMessage(self)
        self.notification_stack = NotificationStack(self)
        self.err_msg.setWindowTitle("Error")
        self.parameter_tag_toolbar = ParameterTagToolBar(
            self, self.db_mngr, *self.db_maps)
        self.addToolBar(Qt.TopToolBarArea, self.parameter_tag_toolbar)
        self.selected_ent_cls_ids = {
            "object class": {},
            "relationship class": {}
        }
        self.selected_ent_ids = {"object": {}, "relationship": {}}
        self.selected_parameter_tag_ids = dict()
        self.selected_param_def_ids = {
            "object class": {},
            "relationship class": {}
        }
        self.parameter_value_list_model = ParameterValueListModel(
            self, self.db_mngr, *self.db_maps)
        fm = QFontMetrics(QFont("", 0))
        self.default_row_height = 1.2 * fm.lineSpacing()
        max_screen_height = max(
            [s.availableSize().height() for s in QGuiApplication.screens()])
        self.visible_rows = int(max_screen_height / self.default_row_height)
        self._selection_source = None
        self._selection_locked = False
        self._focusable_childs = [self.ui.treeView_parameter_value_list]
        self.settings_group = 'treeViewWidget'
        self.undo_action = None
        self.redo_action = None
        db_names = ", ".join(
            ["{0}[*]".format(db_map.codename) for db_map in self.db_maps])
        self.setWindowTitle("{0} - Data store view ".format(db_names))
        self.update_commit_enabled()
 def _error_function(self, message):
     error_dialog = QErrorMessage(self)
     # The QErrorMessage dialog automatically identifies if text is rich text,
     # html or plain text. Unfortunately, it doesn't do a good job when some of
     # the text is describing Exceptions due to number comparisons that include
     # the '>' symbol. As all invocations of this function are done with plain
     # text we use the convertToPlainText method to ensure that it is displayed
     # correctly.
     error_dialog.showMessage(
         PySide2.QtGui.Qt.convertFromPlainText(message))
Пример #14
0
    def __init__(self, network: str, node_launcher: NodeLauncher):
        super().__init__(network)
        self.network = network
        self.node_launcher = node_launcher

        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(ImageLabel(f'bitcoin-{network}.png'))
        layout.addStretch(1)

        self.error_message = QErrorMessage(self)
        if OPERATING_SYSTEM == LINUX:
            self.error_message.showMessage(
                'Linux is not supported, please submit a pull request! '
                'https://github.com/PierreRochard/node-launcher')
            sys.exit(0)

        layout.addWidget(HorizontalLine())

        # Bitcoin-Qt button
        self.bitcoin_qt_button = QtWidgets.QPushButton('Launch Bitcoin')
        bitcoin_qt_launcher = getattr(node_launcher,
                                      f'{network}_bitcoin_qt_node')
        # noinspection PyUnresolvedReferences
        self.bitcoin_qt_button.clicked.connect(bitcoin_qt_launcher)
        layout.addWidget(self.bitcoin_qt_button)

        # LND button
        self.lnd_button = QtWidgets.QPushButton('Launch LND')
        lnd_launcher = getattr(node_launcher, f'{network}_lnd_node')
        # noinspection PyUnresolvedReferences
        self.lnd_button.clicked.connect(lnd_launcher)
        layout.addWidget(self.lnd_button)

        layout.addWidget(HorizontalLine())

        # Copy REST API URL button
        self.rest_url_copy_button = QtWidgets.QPushButton(
            'Copy LND REST Address')
        # noinspection PyUnresolvedReferences
        self.rest_url_copy_button.clicked.connect(self.copy_rest_url)
        layout.addWidget(self.rest_url_copy_button)

        # Show Macaroons button
        self.show_macaroons_button = QtWidgets.QPushButton('Show Macaroons')
        # noinspection PyUnresolvedReferences
        self.show_macaroons_button.clicked.connect(self.reveal_macaroons)
        layout.addWidget(self.show_macaroons_button)

        # Copy lncli command button
        self.lncli_copy_button = QtWidgets.QPushButton('Copy lncli Command')
        # noinspection PyUnresolvedReferences
        self.lncli_copy_button.clicked.connect(self.copy_lncli_command)
        layout.addWidget(self.lncli_copy_button)

        self.setLayout(layout)
Пример #15
0
 def selectFile(self):
     file_name = QFileDialog.getOpenFileName()[0]
     if (file_name == ""):
         pass
     else:
         if file_name.endswith(('.jpg', '.png', '.jpeg')):
             pixmap = QPixmap(file_name).scaledToWidth(240)
             self.original_pic.setPixmap(pixmap)
         else:
             img_error = QErrorMessage()
             img_error.showMessage('Oh no!')
Пример #16
0
    def __init__(self, datapackage):
        """Initialize class.

        Args:
            datapackage (CustomPackage): Data package associated to this widget
        """
        from ..ui.spine_datapackage_form import Ui_MainWindow  # pylint: disable=import-outside-toplevel

        super().__init__(flags=Qt.Window)
        self.datapackage = datapackage
        self.selected_resource_index = None
        self.resources_model = DatapackageResourcesModel(self, self.datapackage)
        self.fields_model = DatapackageFieldsModel(self, self.datapackage)
        self.foreign_keys_model = DatapackageForeignKeysModel(self, self.datapackage)
        self.resource_data_model = DatapackageResourceDataModel(self, self.datapackage)
        self.default_row_height = QFontMetrics(QFont("", 0)).lineSpacing()
        max_screen_height = max([s.availableSize().height() for s in QGuiApplication.screens()])
        self.visible_rows = int(max_screen_height / self.default_row_height)
        self.err_msg = QErrorMessage(self)
        self.notification_stack = NotificationStack(self)
        self._foreign_keys_context_menu = QMenu(self)
        self._file_watcher = QFileSystemWatcher(self)
        self._file_watcher.addPath(self.datapackage.base_path)
        self._changed_source_indexes = set()
        self.undo_group = QUndoGroup(self)
        self.undo_stacks = {}
        self._save_resource_actions = []
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.takeCentralWidget()
        self._before_save_all = self.ui.menuFile.insertSeparator(self.ui.actionSave_All)
        self.setWindowIcon(QIcon(":/symbols/app.ico"))
        self.qsettings = QSettings("SpineProject", "Spine Toolbox")
        self.restore_ui()
        self.add_menu_actions()
        self.setStyleSheet(MAINWINDOW_SS)
        self.ui.tableView_resources.setModel(self.resources_model)
        self.ui.tableView_resources.verticalHeader().setDefaultSectionSize(self.default_row_height)
        self.ui.tableView_resource_data.setModel(self.resource_data_model)
        self.ui.tableView_resource_data.verticalHeader().setDefaultSectionSize(self.default_row_height)
        self.ui.tableView_resource_data.horizontalHeader().setResizeContentsPrecision(self.visible_rows)
        self.ui.tableView_fields.setModel(self.fields_model)
        self.ui.tableView_fields.verticalHeader().setDefaultSectionSize(self.default_row_height)
        self.ui.tableView_fields.horizontalHeader().setResizeContentsPrecision(self.visible_rows)
        self.ui.tableView_foreign_keys.setModel(self.foreign_keys_model)
        self.ui.tableView_foreign_keys.verticalHeader().setDefaultSectionSize(self.default_row_height)
        self.ui.tableView_foreign_keys.horizontalHeader().setResizeContentsPrecision(self.visible_rows)
        self.connect_signals()
        self.setAttribute(Qt.WA_DeleteOnClose)
        self.setWindowTitle("{0}[*] - Spine datapackage manager".format(self.datapackage.base_path))
        self.load_datapackage()
Пример #17
0
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.project = None
        self.message_dialog = QErrorMessage()
        self.buttonBox.buttons()[0].setEnabled(False)
        self.setWindowTitle("Create Project")
        self.setWindowIcon(QIcon("paragon.ico"))

        self.rom_button.clicked.connect(
            lambda: self._open_file_and_set_field("rom_field"))
        self.project_path_button.clicked.connect(
            lambda: self._open_file_and_set_field("project_path_field"))
        self.rom_field.textChanged.connect(self._update_ok_button_enabled)
        self.project_path_field.textChanged.connect(
            self._update_ok_button_enabled)
Пример #18
0
class LaunchWidget(QtWidgets.QWidget):
    error_message: QErrorMessage
    network_grid: QGridLayout
    mainnet_group_box: NetworkWidget
    testnet_group_box: NetworkWidget

    def __init__(self):
        super().__init__()
        self.setWindowTitle('Node Launcher')
        self.message_box = QMessageBox(self)
        self.error_message = QErrorMessage(self)
        self.message_box.setTextFormat(Qt.RichText)
        try:
            self.testnet_group_box = NetworkWidget(network='testnet',
                                                   parent=self)
            self.mainnet_group_box = NetworkWidget(network='mainnet',
                                                   parent=self)
        except ZmqPortsNotOpenError as e:
            self.error_message.showMessage(str(e))
            self.error_message.exec_()
            sys.exit(0)

        self.data_directory_group_box = DataDirectoryBox(
            self.mainnet_group_box.node_set)

        self.network_grid = Tabs(mainnet=self.mainnet_group_box,
                                 testnet=self.testnet_group_box)

        self.grid = QtWidgets.QVBoxLayout()
        self.grid.addStretch()
        self.grid.addWidget(self.data_directory_group_box)
        self.grid.addWidget(self.network_grid)
        self.grid.setAlignment(self.data_directory_group_box, Qt.AlignHCenter)
        self.setLayout(self.grid)

        latest_version = LauncherSoftware().get_latest_release_version()
        latest_major, latest_minor, latest_bugfix = latest_version.split('.')
        major, minor, bugfix = NODE_LAUNCHER_RELEASE.split('.')
        major_upgrade = latest_major > major
        minor_upgrade = latest_major == major and latest_minor > minor
        bugfix_upgrade = latest_major == major and latest_minor == minor and latest_bugfix > bugfix
        if major_upgrade or minor_upgrade or bugfix_upgrade:
            self.message_box.setText(UPGRADE)
            self.message_box.setInformativeText(
                f'Your version: {NODE_LAUNCHER_RELEASE}\n'
                f'New version: {latest_version}')
            self.message_box.exec_()
Пример #19
0
    def __error(self, message: str):
        """__error will show a error message with a given message

        Arguments:
            message {str} -- Message to show
        """
        err = QErrorMessage(self.parent())
        err.setWindowTitle('Flix')
        err.showMessage(message)
        err.exec_()
Пример #20
0
    def roi_view_drag(self, event):
        # if event.button() == QtCore.Qt.RightButton:
        #     if self.image_item.raiseContextMenu(event):
        #         event.accept()
        pos = event.pos()

        y = int(pos.x())
        x = int(pos.y())
        if self.select_pixel_on and self.select_mode != "magic":
            if hasattr(self.main_widget.data_handler,
                       "pixel_with_rois_flat") and self.main_widget.data_handler.pixel_with_rois_flat is not None:

                event.accept()
                self.pixel_paint(x, y)
            else:
                error_dialog = QErrorMessage(self.main_widget.main_window)
                error_dialog.showMessage(
                    "Something has changed, please regenerate ROIs")
Пример #21
0
 def handle_lnd_poll(self, details: str):
     if 'invalid passphrase' in details:
         self.set_unlock_state()
     elif 'unknown service lnrpc.WalletUnlocker' in details:
         self.set_open_state()
     elif 'wallet not found' in details:
         self.set_create_recover_state()
     else:
         QErrorMessage(self).showMessage(details)
         self.set_closed_state()
Пример #22
0
    def __init__(self, db_mngr):
        """Initializes form.

        Args:
            db_mngr (SpineDBManager): The manager to use
        """
        super().__init__(flags=Qt.Window)
        from ..ui.spine_db_editor_window import Ui_MainWindow  # pylint: disable=import-outside-toplevel

        self.db_mngr = db_mngr
        self.db_maps = []
        self.db_urls = []
        self._change_notifiers = []
        self._changelog = []
        self.db_url = None
        self._fetcher = None
        # Setup UI from Qt Designer file
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.takeCentralWidget()
        self.url_toolbar = UrlToolBar(self)
        self.addToolBar(Qt.TopToolBarArea, self.url_toolbar)
        self.setStyleSheet(MAINWINDOW_SS)
        self.setAttribute(Qt.WA_DeleteOnClose)
        self.qsettings = self.db_mngr.qsettings
        self.err_msg = QErrorMessage(self)
        self.err_msg.setWindowTitle("Error")
        self.err_msg.setWindowFlag(Qt.WindowContextHelpButtonHint, False)
        self.notification_stack = NotificationStack(self)
        self.silenced = False
        fm = QFontMetrics(QFont("", 0))
        self.default_row_height = 1.2 * fm.lineSpacing()
        max_screen_height = max(
            [s.availableSize().height() for s in QGuiApplication.screens()])
        self.visible_rows = int(max_screen_height / self.default_row_height)
        self.settings_group = "spineDBEditor"
        self.undo_action = None
        self.redo_action = None
        self.ui.actionUndo.setShortcuts(QKeySequence.Undo)
        self.ui.actionRedo.setShortcuts(QKeySequence.Redo)
        self.update_commit_enabled()
        self.setContextMenuPolicy(Qt.NoContextMenu)
Пример #23
0
class DataDirectoryBox(QtWidgets.QGroupBox):
    def __init__(self, command_generator: CommandGenerator):
        super().__init__('Bitcoin Data Directory')
        self.error_message = QErrorMessage(self)

        self.command_generator = command_generator
        self.datadir = self.command_generator.testnet.bitcoin.file.datadir
        self.datadir_label = QLabel()
        self.datadir_label.setText(self.datadir)
        self.datadir_label.setAlignment(Qt.AlignCenter | Qt.AlignCenter)
        self.datadir_label.setFixedHeight(50)

        self.show_directory_button = QtWidgets.QPushButton('Show Directory')
        self.show_directory_button.clicked.connect(
            lambda: reveal(self.datadir))

        self.select_directory_button = QtWidgets.QPushButton(
            'Select Directory')
        self.select_directory_button.clicked.connect(self.file_dialog)

        layout = QtWidgets.QGridLayout()
        layout.addWidget(self.datadir_label, 1, 1, 1, 2)
        layout.addWidget(self.show_directory_button, 2, 1)
        layout.addWidget(self.select_directory_button, 2, 2)

        self.setLayout(layout)

    def file_dialog(self):
        # noinspection PyCallByClass
        data_directory = QFileDialog.getExistingDirectory(
            self, 'Select Data Directory', self.datadir,
            QFileDialog.ShowDirsOnly
            | QFileDialog.DontResolveSymlinks)
        if not data_directory:
            return
        if not os.path.isdir(data_directory):
            self.error_message.showMessage(
                'Directory does not exist, please try again!')
        self.command_generator.testnet.bitcoin.file.datadir = data_directory
        self.datadir = data_directory
        self.datadir_label.setText(data_directory)
Пример #24
0
 def upload(self):
     try:
         login = self.lineEdit_3.text()
         password = self.lineEdit_4.text()
         group_id = abs(int(self.lineEdit.text()))
         path_to_folder = self.lineEdit_2.text()
         QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
         uploader = Uploader(login, password, group_id, path_to_folder)
         self.progressBar = QtWidgets.QProgressBar(self.gridLayoutWidget)
         self.progressBar.setEnabled(True)
         self.progressBar.setValue(0)
         self.progressBar.setTextVisible(True)
         self.progressBar.setObjectName("progressBar")
         self.gridLayout.addWidget(self.progressBar, 10, 0, 1, 1)
         self.pushButton.setEnabled(False)
         self.pushButton_2.setEnabled(False)
         self.update()
         for i, j in uploader.upload_album():
             self.progressBar.setValue(int(i / j * 100))
             QApplication.processEvents()
     except Exception as e:
         errMsgBox = QErrorMessage()
         errMsgBox.showMessage(repr(e))
         errMsgBox.exec_()
     finally:
         self.progressBar.setParent(None)
         self.pushButton.setEnabled(True)
         self.pushButton_2.setEnabled(True)
         QApplication.restoreOverrideCursor()
Пример #25
0
 def handle_lnd_poll(self, details: str):
     if details is None:
         return
     details = details.lower()
     if 'unknown service lnrpc.walletunlocker' in details:
         self.set_open_state()
     elif 'wallet not found' in details:
         self.set_create_recover_state()
     elif 'connect failed' in details:
         pass
     else:
         QErrorMessage(self).showMessage(details)
         self.set_open_state()
Пример #26
0
 def getVkSession(self):
     try:
         self.vk = self.login.getVkSession()
         self.initAudioList()
     except Exception as e:
         errMsgBox = QErrorMessage()
         errMsgBox.showMessage(repr(e))
         errMsgBox.exec_()
Пример #27
0
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Node Launcher')
        self.error_message = QErrorMessage(self)
        try:
            self.network_widget = NetworkWidget()
        except ZmqPortsNotOpenError as e:
            self.error_message.showMessage(str(e))
            self.error_message.exec_()
            sys.exit(0)

        self.network_grid = Tabs(self, self.network_widget)
        self.network_grid.currentChanged.connect(self.on_tab_change)

        self.grid = QVBoxLayout()

        self.settings_tab = SettingsTabDialog(
            node_set=self.network_widget.node_set)

        settings_action = QAction('&Settings', self)
        settings_action.setShortcut(QKeySequence.Preferences)
        settings_action.triggered.connect(self.settings_tab.show)

        self.menubar = QMenuBar()
        self.menubar.setMinimumWidth(self.menubar.sizeHint().width())
        file_menu = self.menubar.addMenu('&File')
        file_menu.addAction(settings_action)
        self.grid.addWidget(self.menubar)

        self.grid.addStretch()
        self.grid.addWidget(self.network_grid)
        self.setLayout(self.grid)

        self.settings_tab.bitcoin_tab.change_network.connect(
            self.change_network)

        timer = QTimer()
        timer.singleShot(1000, self.check_version)
class SelectDirectoryDialog(QFileDialog):
    new_data_directory = Signal(str)

    def __init__(self, parent: QWidget):
        super().__init__(parent, 'Select Data Directory')
        self.setFileMode(QFileDialog.DirectoryOnly)
        options = QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks
        self.setOptions(options)
        self.setViewMode(QFileDialog.Detail)
        self.error_message = QErrorMessage(self)

    def select_new(self, current_datadir: str):
        self.setDirectory(current_datadir)
        if self.exec_():
            new_datadir = self.selectedFiles()[0]
            if not new_datadir:
                return
            if not os.path.isdir(new_datadir):
                self.error_message.showMessage(
                    'Directory does not exist, please try again!')
                self.select_new(current_datadir)
            # noinspection PyUnresolvedReferences
            self.new_data_directory.emit(new_datadir)
    def equation_builder(self):
        try:
            self.__raw_equation = self.equationLineEdit.text() \
                .replace("=0", "").replace("= 0", "").replace("0=", "").replace("0 =", ""). \
                replace("y=", "").replace("y =", "").replace("=y", "").replace("= y", "")

            # Render equation
            self.display_equation = parse_latex("y = " + self.__raw_equation)
            Utils.renderLatex(latex(self.display_equation),
                              15,
                              file='equation.svg')
            image = QPixmap('equation.svg')
            self.equationLabel.setPixmap(image)

            # Fix exp (Add missing closing bracket)
            self.__raw_equation = self.__raw_equation.replace("e^", r"\exp(")
            pos = self.__raw_equation.find(r'\exp(')
            self.__raw_equation = self.__raw_equation[:pos] + \
                                  self.__raw_equation[pos:len(r'\exp(') + 2] + ")" + \
                                  self.__raw_equation[pos + len(r'\exp(') + 1:]

            self.equation = parse_latex(self.__raw_equation)
            self.f = lambdify(x, self.equation, 'numpy')

            # Enable buttons
            self.graphButton.setEnabled(True)
            self.bisezioneTable.setEnabled(True)

            # Set graph
            self.graphButton.clicked.connect(self.graph)

            # Calculate table values
            self.bisezione()
        except SyntaxError as error:
            msg = QErrorMessage()
            msg.showMessage("Errore di sintassi!")
            return msg
Пример #30
0
def error_dialogue(message):
    """Create error window with the message given.
    Must be called outside of a Qt instance.
    """
    error = QApplication([])
    error_dialog = QErrorMessage()
    error_dialog.setWindowTitle("File not found")
    error_dialog.showMessage(message)
    sys.exit(error.exec_())