Ejemplo n.º 1
0
 def append_wifi_data(self, data):
     """ Append data to list in WiFi list tab """
     self.clear_wifi_list.emit()
     i = 1
     for i in data:
         if self.current_lang == "Polski":
             item = QListWidgetItem(
                 'BSID: ' + str(i) + ' \nKanał: ' + str(data[i][1]) +
                 ' \nRSSI: ' + str(data[i][0]) + ' dBm \nMAC: ' +
                 str(data[i][3]) + ' (Producent: ' +
                 str(manu.search_manufacturer_by_mac(str(data[i][3]))) +
                 ')')
         else:
             item = QListWidgetItem(
                 'BSID: ' + str(i) + ' \nChannel: ' + str(data[i][1]) +
                 ' \nRSSI: ' + str(data[i][0]) + ' dBm \nMAC: ' +
                 str(data[i][3]) + ' (Manufacturer: ' +
                 str(manu.search_manufacturer_by_mac(str(data[i][3]))) +
                 ')')
         if int(abs(data[i][0])) < 50:
             item.setIcon(QIcon('icons/icons8-no-connection-64-green.png'))
         elif int(abs(data[i][0])) >= 50 and int(abs(data[i][0])) < 70:
             item.setIcon(QIcon('icons/icons8-no-connection-64-blue.png'))
         elif int(abs(data[i][0])) >= 70 and int(abs(data[i][0])) < 80:
             item.setIcon(QIcon('icons/icons8-no-connection-64-orange.png'))
         elif int(abs(data[i][0])) >= 80 and int(abs(data[i][0])) < 90:
             item.setIcon(QIcon('icons/icons8-no-connection-64-red.png'))
         elif int(abs(data[i][0])) >= 90:
             item.setIcon(QIcon('icons/icons8-no-connection-64-black.png'))
         self.append_wifi_list_item.emit(item)
         self.loop = QEventLoop()
         QTimer.singleShot(50, self.loop.quit)
         self.loop.exec_()
Ejemplo n.º 2
0
 def append_blue_data(self, data):
     """ DOCSTRING """
     self.clear_blue_list.emit()
     i = 1
     for i in data:
         if self.current_lang == "Polski":
             item = QListWidgetItem('Nazwa: ' + str(i) + ' \nMAC: ' +
                                    str(data[i][0].upper()) + ' \nRSSI: ' +
                                    str(data[i][1]) + ' dBm\nProducent: ' +
                                    str(
                                        manu.search_manufacturer_by_mac(
                                            str(data[i][0].upper()))) + '')
         else:
             item = QListWidgetItem('Name: ' + str(i) + ' \nMAC: ' +
                                    str(data[i][0].upper()) + ' \nRSSI: ' +
                                    str(data[i][1]) +
                                    ' dBm\nManufacturer: ' + str(
                                        manu.search_manufacturer_by_mac(
                                            str(data[i][0].upper()))) + '')
         if int(abs(data[i][1])) < 50:
             item.setIcon(QIcon('icons/icons8-no-connection-64-green.png'))
         elif int(abs(data[i][1])) >= 50 and int(abs(data[i][1])) < 70:
             item.setIcon(QIcon('icons/icons8-no-connection-64-blue.png'))
         elif int(abs(data[i][1])) >= 70 and int(abs(data[i][1])) < 80:
             item.setIcon(QIcon('icons/icons8-no-connection-64-orange.png'))
         elif int(abs(data[i][1])) >= 80 and int(abs(data[i][1])) < 90:
             item.setIcon(QIcon('icons/icons8-no-connection-64-red.png'))
         elif int(abs(data[i][1])) >= 90:
             item.setIcon(QIcon('icons/icons8-no-connection-64-black.png'))
         self.append_blue_list_item.emit(item)
         self.loop = QEventLoop()
         QTimer.singleShot(50, self.loop.quit)
         self.loop.exec_()
Ejemplo n.º 3
0
 def list_items(self):
     for item in self.items:
         list_item = QListWidgetItem(item['name'])
         if item['done']:
             icon = QIcon('done.svg')
             list_item.setIcon(icon)
         self.items_view.addItem(list_item)
Ejemplo n.º 4
0
 def addItem(self, label):
     label_text = label.text() if isinstance(label, QListWidgetItem) else label
     item = QListWidgetItem(self.filt(label_text))
     image = QImage()
     image.loadFromData(list_item)
     item.setIcon(QIcon(QPixmap(image)))
     self.items.append(label_text)
     super().addItem(item)
Ejemplo n.º 5
0
    def _left_panel(self):
        panel = QWidget()
        box = QVBoxLayout()
        btn_menu = QPushButton()
        icn = QtGui.QIcon.fromTheme("application-menu")
        btn_menu.setIcon(icn)
        btn_menu.setIconSize(QSize(BTN_MENU_SIZE, BTN_MENU_SIZE))
        btn_menu.setMaximumWidth(BTN_MENU_SIZE)
        btn_menu.setMaximumHeight(BTN_MENU_SIZE)
        btn_menu.setToolTip(_("Options"))
        btn_menu.setObjectName("menuButton")
        #		box.addWidget(btn_menu,Qt.Alignment(1))
        indexes = []
        for index, option in self.stacks.items():
            idx = index
            lst_widget = QListWidgetItem()
            lst_widget.setText(option['name'])
            mod = option.get('module', None)
            if mod:
                try:
                    idx = mod.index
                except:
                    pass
            if idx > 0:
                icn = QtGui.QIcon.fromTheme(option['icon'])
                lst_widget.setIcon(icn)
                if 'tooltip' in option.keys():
                    lst_widget.setToolTip(option['tooltip'])
                while idx in indexes:
                    idx += 1
                indexes.append(index)
            self.stacks[idx]['widget'] = lst_widget
        orderedStacks = {}
        orderedStacks[0] = self.stacks[0]
        #self.lst_options.addItem(orderedStacks[0]['widget'])
        cont = 0
        indexes.sort()
        for index in indexes:
            if index:
                orderedStacks[cont] = self.stacks[index].copy()
                if self.stacks[index].get('visible', True) == True:
                    self.lst_options.addItem(orderedStacks[cont]['widget'])
                cont += 1

        self.stacks = orderedStacks.copy()
        box.addWidget(self.lst_options)
        self.lst_options.currentRowChanged.connect(self._show_stack)
        self.lst_options.setCurrentIndex(QModelIndex())
        self.last_index = None
        panel.setLayout(box)
        self.resize(self.size().width() + box.sizeHint().width(),
                    self.size().height() + box.sizeHint().height() / 2)
        self.lst_options.setFixedSize(
            self.lst_options.sizeHintForColumn(0) + 2 *
            (self.lst_options.frameWidth() + 15), self.height()
        )  #self.lst_options.sizeHintForRow(0) * self.lst_options.count() + 2 * (self.lst_options.frameWidth()+15))

        return (panel)
Ejemplo n.º 6
0
    def create_project(self,
                       project_name: str,
                       visualization: bool = False,
                       stimulus: bool = False,
                       analysis: bool = False) -> None:
        """Create a new project with a template and open it."""
        icon = QIcon()
        icon_name = 'icon_sti'

        if visualization:
            icon_name = 'icon_viz'
            item = QListWidgetItem(
                self.parent_frame.listWidget_projects_visualizations)
            default_project = '_default_visualization'
            self.mode = 'visualization'
        elif stimulus:
            icon_name = 'icon_sti'
            item = QListWidgetItem(
                self.parent_frame.listWidget_projects_delivery)
            default_project = '_default_stimuli_delivery'
            self.mode = 'delivery'
        elif analysis:
            icon_name = 'icon_ana'
            item = QListWidgetItem(
                self.parent_frame.listWidget_projects_analysis)
            default_project = '_default_data_analysis'
            self.mode = 'analysis'

        item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEditable
                      | Qt.ItemIsDragEnabled | Qt.ItemIsUserCheckable
                      | Qt.ItemIsEnabled)
        item.setText(project_name)
        item.previous_name = project_name
        item.path = self.normalize_path(project_name)

        ext = 0
        while item.path in os.listdir(self.projects_dir):
            ext += 1
            item.path = f"{self.normalize_path(project_name)}{ext}"

        icon.addFile(f"bci:primary/{icon_name}.svg", QSize(), QIcon.Normal,
                     QIcon.Off)
        item.setIcon(icon)
        item.icon_name = icon_name

        source = os.path.join(os.getenv('BCISTREAM_ROOT'),
                              'default_extensions', default_project)
        target = os.path.join(self.projects_dir, item.path)
        shutil.copytree(source, target)

        pickle.dump({
            'name': project_name,
            'files': []
        }, open(os.path.join(self.projects_dir, item.path, BCIFR_FILE), 'wb'))
        self.open_project(item.path)
Ejemplo n.º 7
0
 def populate(self):
     """Actualize the list of word sets"""
     self.view.clear()
     self.set_names = list()
     for data in get_wordsets(self.conn):
         set_name = data["name"]
         item = QListWidgetItem()
         item.setText(set_name)
         item.setIcon(FIcon(0xF0A38))
         self.view.addItem(item)
         self.set_names.append(set_name)
Ejemplo n.º 8
0
 def create_current_item(self, flags):
     if self.active_stack.index() == 0:
         txt = _('  0: Geladener Zustand des Dokuments')
     else:
         txt = _('  0: Aktueller Zustand des Dokuments')
     current_item = QListWidgetItem(txt)
     current_item.setForeground(self.fg_black)
     current_item.setBackground(self.bg_grey)
     current_item.setFlags(flags)
     current_item.setIcon(IconRsc.get_icon('options'))
     return current_item
Ejemplo n.º 9
0
   def __init__(self, item_names=[], icon_loc="table.png", parent=None):
      super().__init__(parent)
      self.setStyleSheet("""
         font-size: 12pt;
      """)
      self.setMinimumWidth(300)

      self.setSelectionMode(QAbstractItemView.SingleSelection)
      if item_names:
         for item_name in item_names:
            item = QListWidgetItem(item_name)
            item.setIcon(QIcon(QPixmap(icon_loc)))
            self.addItem(item)
Ejemplo n.º 10
0
 def add_component_controller(
         self, component_controller: ComponentController) -> None:
     label = component_controller.get_q_svg_component_widget()
     controller_item = QListWidgetItem()
     controller_item.parent = component_controller
     controller_item.setText("Testtest")
     pixmap = component_controller.pixmap
     controller_item.setIcon(pixmap)
     controller_item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable
                              | Qt.ItemIsDragEnabled)
     controller_item.component_controller = component_controller
     self.setItemWidget(controller_item, label)
     self.addItem(controller_item)
     logger.debug("Component added")
Ejemplo n.º 11
0
    def _add_list_item(self, item_data: ResultItemData) -> None:
        new_item = QListWidgetItem(item_data.title)
        new_item.setData(Qt.UserRole, item_data.glob_id)

        if item_data.rgb is not None:
            color = QColor(*item_data.rgb)
            brush = QBrush(color)
            new_item.setForeground(brush)

        icon = self._data_icons.get(item_data.category.lower(), None)
        if icon is not None:
            new_item.setIcon(icon)

        self.ui.search_result_list.addItem(new_item)
Ejemplo n.º 12
0
 def Write(self, files):
     self.clear()
     for f in files:
         item = QListWidgetItem(f, self)
         if self._folder is None:
             item.setForeground(QBrush(Qt.red))
             continue
         filename = os.path.join(self._folder, f)
         if not os.path.isfile(filename):
             item.setForeground(QBrush(Qt.red))
             continue
         item.setIcon(icons.FileIcon(filename))
         item.setData(Qt.UserRole, filename)
     self.sortItems()
Ejemplo n.º 13
0
    def create_history_item(self, c: int, txt: str, icon, redo_idx):
        num = c - redo_idx
        if num >= 0:
            num += 1

        item = QListWidgetItem(f'{txt} [{num: 3d}]', self.viewList)
        item.setData(Qt.UserRole, c)
        item.setFlags(self.enabled_flags)
        item.setIcon(icon)

        if num > 0:
            item.setForeground(self.fg_grey)
            item.setFont(FontRsc.italic)

        return item
Ejemplo n.º 14
0
    def create_item(self, name, icon, parent):
        """Create a standard list widget item, for option panel.

        Args:
          name: Name of option button
          icon: Icon name of option button
          parent: The QListWidget
        Returns:
          item: created option button
        """
        item = QListWidgetItem(parent)
        item.setText(name)
        item.setIcon(QIcon(icon))
        item.setStatusTip(name)
        item.setTextAlignment(Qt.AlignLeft)
        item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
Ejemplo n.º 15
0
 def update_view(self):
     self.clear()
     self.rows_data = self.filter_view()
     for row_data in self.rows_data:
         playlist_name = self.manager_model.playlists[row_data].name
         item = QListWidgetItem(playlist_name)
         item.setData(Qt.UserRole, row_data)
         if ord("a") <= ord(playlist_name[0].lower()) <= ord("z"):
             item.setIcon(
                 QIcon(
                     QPixmap(u":/images/icons/ascii/{}.png".format(
                         playlist_name[0].lower()))))
         else:
             item.setIcon(
                 QIcon(QPixmap(u":/images/icons/ascii/question_mark.svg")))
         self.addItem(item)
Ejemplo n.º 16
0
    def search_bar(self):
        text = self.ui.SearchBar.text()
        n = 0
        results = []

        # ! not part of search - joke
        if text == "wii bric":
            self.ui.listAppsWidget.clear()
            item = QListWidgetItem()
            item.setText("Wii Pong\n" "9.000MiB | 9.0.0.0 | Danbo | Wii Pong")
            item.setIcon(QIcon(resource_path("assets/gui/icons/bricks.png")))
            self.ui.listAppsWidget.addItem(item)
            self.close_the_shop()
            return

        # Filter items with search term
        for i in self.ui.listAppsWidget.findItems(text, Qt.MatchContains):
            if self.current_category == "all" and (self.current_developer
                                                   in i.data(
                                                       Qt.UserRole)["coder"]):
                results.append(i.text())
                n += 1
            elif i.data(Qt.UserRole)["category"] == self.current_category and (
                    self.current_developer in i.data(Qt.UserRole)["coder"]):
                results.append(i.text())
                n += 1
            else:
                pass

        # Get All Items
        for i in self.ui.listAppsWidget.findItems("", Qt.MatchContains):
            # Hide and unhide!
            if i.text() in results:
                i.setHidden(False)
            else:
                i.setHidden(True)
        if text == "":
            if n == 1:
                self.ui.AppsAmountLabel.setText(f"{n} App")
            else:
                self.ui.AppsAmountLabel.setText(f"{n} Apps")
        else:
            if n == 1:
                self.ui.AppsAmountLabel.setText(f"{n} Result")
            else:
                self.ui.AppsAmountLabel.setText(f"{n} Results")
Ejemplo n.º 17
0
    def addNewItem(self, name, icon=None):

        if os.getenv("PINGUINO_PYTHON") is "2":
            if not icon: icon = None
            elif type(icon) in [str, unicode]: icon = getattr(self.icons, icon)
        elif os.getenv("PINGUINO_PYTHON") is "3":
            if not icon: icon = None
            elif type(icon) == str: icon = getattr(self.icons, icon)

        if not name in self.itemsListName:
            item = QListWidgetItem()
            if icon: item.setIcon(icon)
            item.setText(name)
            self.addItem(item)
            self.itemsList.append(item)
            self.itemsListName.append(name)
            return item
Ejemplo n.º 18
0
 def update_view(self):
     self.clear()
     self.rows_data = self.filter_view()
     for row_data in self.rows_data:
         shown_name = "({})" if len(row_data) > 1 else "{}"
         item = QListWidgetItem(
             shown_name.format(", ".join([str(i) for i in row_data])))
         item.setData(Qt.UserRole, row_data)
         if ord("a") <= ord(str(row_data[0])[0].lower()) <= ord("z"):
             item.setIcon(
                 QIcon(
                     QPixmap(u":/images/icons/ascii/{}.png".format(
                         str(row_data[0])[0].lower()))))
         else:
             item.setIcon(
                 QIcon(QPixmap(u":/images/icons/ascii/question_mark.svg")))
         self.addItem(item)
Ejemplo n.º 19
0
    def addItemsCompleter(self, list_, icon=None):

        if os.getenv("PINGUINO_PYTHON") is "2":
            if not icon: icon = None
            elif type(icon) in [str, unicode]: icon = getattr(self.icons, icon)
        elif os.getenv("PINGUINO_PYTHON") is "3":
            if not icon: icon = None
            elif type(icon) == str: icon = getattr(self.icons, icon)

        for text in list_:
            if not text in self.itemsListName:
                item = QListWidgetItem()
                if icon != None: item.setIcon(icon)
                item.setText(text)
                self.addItem(item)
                self.itemsList.append(item)
                self.itemsListName.append(item.text())
Ejemplo n.º 20
0
    def create_item(self, name, icon):
        """Create a standard list widget item, for option panel.

        Args:
          name: Name of option button
          icon: Icon name of option button
        Returns:
          item: created option button
        """
        item = QListWidgetItem(self)
        item.setText(name)
        item.setIcon(QIcon(icon))
        item.setStatusTip(name)
        item.setSizeHint(QSize(75, 70))
        item.setTextAlignment(Qt.AlignCenter)
        item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)

        return item
Ejemplo n.º 21
0
    def __init__(self, *args, **kwargs):
        super(VarietyAdmin, self).__init__(*args, **kwargs)
        # 添加品种组别的选项
        for group in [{
                "name": "金融股指",
                "name_en": "finance",
                "logo": "icons/finance.png"
        }, {
                "name": "农副产品",
                "name_en": "farm",
                "logo": "icons/farm_product.png"
        }, {
                "name": "能源化工",
                "name_en": "chemical",
                "logo": "icons/chemical.png"
        }, {
                "name": "金属产业",
                "name_en": "metal",
                "logo": "icons/metal.png"
        }]:
            group_item = QListWidgetItem(group["name"])
            group_item.setIcon(QIcon(group["logo"]))
            self.group_list.addItem(group_item)

            self.opts_widget.belong_group.addItem(
                group["name"])  # 添加新建品种页面的组别选项

        # 添加新建品种页面的交易所选项
        for exchange in [
                "郑州商品交易所", "大连商品交易所", "上海期货交易所", "中国金融期货交易所", "上海国际能源中心"
        ]:
            self.opts_widget.belong_exchange.addItem(exchange)

        self.group_list.clicked.connect(self.select_variety_group)  # 点击项目的行为
        self.opts_widget.add_button.clicked.connect(
            self.add_new_variety)  # 新建品种与列表显示切换
        self.opts_widget.commit_new_button.clicked.connect(
            self.commit_new_variety)  # 确定新增品种
Ejemplo n.º 22
0
    def selection_changed(self):
        try:
            if not splash.isHidden():
                splash.showMessage(f"Finishing (2/3) - Loading first app..",
                                   color=splash_color)
        except NameError:
            pass
        try:
            data = self.ui.listAppsWidget.currentItem().data(Qt.UserRole)
            app_name = data["internal_name"]
        except Exception:
            app_name = None
        if app_name is not None:
            # Set active tab to first
            self.ui.tabMetadata.setCurrentIndex(0)

            # Hide icon
            self.ui.HomebrewIconLabel.hide()

            # Clear supported controllers listview:
            self.ui.SupportedControllersListWidget.clear()

            # Set data
            data = self.ui.listAppsWidget.currentItem().data(Qt.UserRole)

            # -- Get actual metadata
            # App Name
            self.ui.appname.setText(data["display_name"])
            self.ui.SelectionInfoBox.setTitle("Metadata: " +
                                              data["display_name"])
            self.ui.label_displayname.setText(data["display_name"])

            # File Size
            try:
                self.ui.filesize.setText(metadata.file_size(data["extracted"]))
            except KeyError:
                self.ui.filesize.setText("Unknown")

            # Category
            self.ui.HomebrewCategoryLabel.setText(
                metadata.category_display_name(data["category"]))

            # Release Date
            self.ui.releasedate.setText(
                datetime.fromtimestamp(int(
                    data["release_date"])).strftime('%B %e, %Y at %R'))

            # Controllers
            controllers = metadata.parse_controllers(data["controllers"])
            # Add icons for Wii Remotes
            if controllers[0] > 1:
                item = QListWidgetItem()
                item.setText(f"{str(controllers[0])} Wii Remotes")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/{str(controllers[0])}WiiRemote.png"
                        )))
                item.setToolTip(
                    f"This app supports up to {str(controllers[0])} Wii Remotes."
                )
                self.ui.SupportedControllersListWidget.addItem(item)
            elif controllers[0] == 1:
                item = QListWidgetItem()
                item.setText(f"1 Wii Remote")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/1WiiRemote.png")))
                item.setToolTip("This app supports a single Wii Remote.")
                self.ui.SupportedControllersListWidget.addItem(item)
            if controllers[1] is True:
                item = QListWidgetItem()
                item.setText(f"Nunchuk")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/Nunchuk.png")))
                item.setToolTip("This app can be used with a Nunchuk.")
                self.ui.SupportedControllersListWidget.addItem(item)
            if controllers[2] is True:
                item = QListWidgetItem()
                item.setText(f"Classic Controller")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/ClassicController.png"
                        )))
                item.setToolTip(
                    "This app can be used with a Classic Controller.")
                self.ui.SupportedControllersListWidget.addItem(item)
            if controllers[3] is True:
                item = QListWidgetItem()
                item.setText(f"GameCube Controller")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/GamecubeController.png"
                        )))
                item.setToolTip(
                    "This app can be used with a Gamecube Controller.")
                self.ui.SupportedControllersListWidget.addItem(item)
            if controllers[4] is True:
                item = QListWidgetItem()
                item.setText(f"Wii Zapper")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/WiiZapper.png")))
                item.setToolTip("This app can be used with a Wii Zapper.")
                self.ui.SupportedControllersListWidget.addItem(item)
            if controllers[5] is True:
                item = QListWidgetItem()
                item.setText(f"USB Keyboard")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/USBKeyboard.png")))
                item.setToolTip("This app can be used with a USB Keyboard.")
                self.ui.SupportedControllersListWidget.addItem(item)
            if controllers[6] is True:
                item = QListWidgetItem()
                item.setText(f"SDHC Card")
                item.setIcon(
                    QIcon(
                        resource_path(
                            f"assets/gui/icons/controllers/SDHC.png")))
                item.setToolTip("This app is confirmed to support SDHC cards.")
                self.ui.SupportedControllersListWidget.addItem(item)

            # Version
            self.ui.version.setText(data["version"])

            # Coder
            self.ui.developer.setText(data["coder"])

            # Short Description
            if data["short_description"] == "":
                self.ui.label_description.setText("No description specified.")
            else:
                self.ui.label_description.setText(data["short_description"])

            # Long Description
            self.ui.longDescriptionBrowser.setText(data["long_description"])

            # File Name Line Edit
            self.ui.FileNameLineEdit.setText(app_name + ".zip")
            self.ui.DirectLinkLineEdit.setText(
                metadata.url(app_name, repo=HOST))
        self.ui.progressBar.setValue(0)
        self.repaint()
        # Load icon
        self.load_icon(app_name=app_name, repo=HOST)
        self.status_message("Ready to download")
Ejemplo n.º 23
0
    def _initUI(self):
        def _init_tool_buttons():

            # First logic buttons
            logic_buttons_layout = QHBoxLayout()

            logic_buttons = [('NO', QPushButton('NO')),
                             ('AND', QPushButton('AND')),
                             ('OR', QPushButton('OR')),
                             ('implies', QPushButton('→')),
                             ('equivalence', QPushButton('↔')),
                             ('forall', QPushButton('∀')),
                             ('exists', QPushButton('∃'))]

            for name, button in logic_buttons:
                if name in self.tool_buttons:
                    logic_buttons_layout.addWidget(button)

            # Then proof buttons
            proof_buttons_layout = QHBoxLayout()
            proof_buttons = [\
                    ('p_contraposition', QPushButton('Proof by contraposition')),
                    ('p_absurd', QPushButton('Proof by contradicton')),
                    ('p_cases', QPushButton('Cases disjunction')),
                    ('p_induction', QPushButton('Proof by induction'))]

            for name, button in proof_buttons:
                if name in self.tool_buttons:
                    proof_buttons_layout.addWidget(button)

            # Put it all together
            buttons_layout = QVBoxLayout()
            buttons_layout.addLayout(logic_buttons_layout)
            buttons_layout.addLayout(proof_buttons_layout)

            return buttons_layout

        # Create widgets
        objects = PropobjList()
        objects.addItem('X : ensemble')
        objects.addItem('Y : ensemble')
        objects.addItem('f : X → Y')
        objects.addItem('x ∈ X')
        objects.addItem('A : partie de X')
        icon_item = QListWidgetItem('B partie de X')
        icon_item.setIcon(QIcon('icon_blue.png'))
        objects.addItem(icon_item)

        properties = PropobjList()
        properties.addItem('f est une fonction de remplissage')
        properties.addItem("transitivité de l'union")

        statements = QTreeWidget()
        statements.setAlternatingRowColors(True)
        statements.setHeaderLabels(['Énoncé', 'Identifiant'])
        anneaux_ideaux = StatementNode(statements, 'Anneaux et idéaux')
        Statement(anneaux_ideaux, ['Définition anneau', 'Définition 1.1'])
        Statement(anneaux_ideaux, ['Définition idéal', 'Définition 1.7'])
        Statement(anneaux_ideaux, ["Existence d'un idéal maximal", 'Théorème'])
        noetherianite = StatementNode(statements, 'Noetherianité')
        Statement(noetherianite, ['Transfert de Noethérianité', ''])
        Statement(noetherianite,
                  ['Principal implique noethérien', 'Proposition 2.3'])
        statements.resizeColumnToContents(0)

        goal = Goal(GOAL)

        # Create layouts
        goal_layout = QHBoxLayout()
        logic_buttons = _init_tool_buttons()  # already contains buttons
        main_layout = QVBoxLayout()
        workspace_layout = QHBoxLayout()
        propobj_layout = QVBoxLayout()
        tools_layout = QVBoxLayout()

        # Create QGroupBox to have titles
        propobj_gb = QGroupBox('Properties and objects')
        tools_gb = QGroupBox('Tools (affect goal, prop. and obj.)')

        # Put widgets in layouts and group boxes
        goal_layout.addStretch()
        goal_layout.addWidget(goal)
        goal_layout.addStretch()
        # Add space below goal
        goal_layout.setContentsMargins(0, 10, 0, 30)  #LTRB
        propobj_layout.addWidget(objects)
        propobj_layout.addWidget(properties)
        tools_layout.addLayout(logic_buttons)
        tools_layout.addWidget(statements)
        propobj_gb.setLayout(propobj_layout)
        tools_gb.setLayout(tools_layout)
        workspace_layout.addWidget(propobj_gb)
        workspace_layout.addWidget(tools_gb)

        # Don't forget me
        main_layout.addLayout(goal_layout)
        main_layout.addLayout(workspace_layout)
        self.setWindowTitle("L'union des images réciproque est l'image "\
                "réciproque de l'union — d∃∀duction")
        self.setLayout(main_layout)
        self.show()
Ejemplo n.º 24
0
    def load_projects(self) -> None:
        """Load projects."""
        self.parent_frame.listWidget_projects_visualizations.clear()
        self.parent_frame.listWidget_projects_analysis.clear()
        self.parent_frame.listWidget_projects_delivery.clear()

        projects = os.listdir(self.projects_dir)
        projects = filter(
            lambda f: os.path.isdir(os.path.join(self.projects_dir, f)),
            projects)
        projects = filter(lambda f: not f.startswith('__'), projects)

        if (not self.parent_frame.checkBox_projects_show_tutorials.isChecked()
            ) and ('--local' in sys.argv):
            projects = filter(lambda f: not f.startswith('_'), projects)

        projects = sorted(list(projects))

        for project_dir in projects:
            project = project_dir
            if os.path.exists(
                    os.path.join(self.projects_dir, project_dir, BCIFR_FILE)):
                bcifr = pickle.load(
                    open(
                        os.path.join(self.projects_dir, project_dir,
                                     BCIFR_FILE), 'rb'))
                if isinstance(bcifr, set):
                    pickle.dump({
                        'name': project,
                        'files': bcifr
                    },
                                open(
                                    os.path.join(self.projects_dir,
                                                 project_dir, BCIFR_FILE),
                                    'wb'))
                elif isinstance(bcifr, dict):
                    project = bcifr.get('name', project)
            else:
                pickle.dump({
                    'name': project,
                    'files': []
                },
                            open(
                                os.path.join(self.projects_dir, project_dir,
                                             BCIFR_FILE), 'wb'))

            if project.startswith(
                    'Tutorial |'
            ) and not self.parent_frame.checkBox_projects_show_tutorials.isChecked(
            ):
                continue

            if project.startswith(
                    'Tutorial: '
            ) and not self.parent_frame.checkBox_projects_show_tutorials.isChecked(
            ):
                continue

            with open(os.path.join(self.projects_dir, project_dir, 'main.py'),
                      'r') as file:
                lines = file.readlines()

                modules = {
                    LINE_VISUALIZATION:
                    (self.parent_frame.listWidget_projects_visualizations,
                     'icon_viz'),
                    LINE_DELIVERY:
                    (self.parent_frame.listWidget_projects_delivery,
                     'icon_sti'),
                    LINE_ANALYSIS:
                    (self.parent_frame.listWidget_projects_analysis,
                     'icon_ana'),
                }
                for module in modules:
                    if [
                            line for line in lines
                            if module in ' '.join(line.split())
                            and not line.strip().startswith("#")
                    ]:
                        widget, icon_name = modules[module]
                        break
                    widget, icon_name = modules[LINE_ANALYSIS]

            item = QListWidgetItem(widget)
            item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEditable
                          | Qt.ItemIsDragEnabled | Qt.ItemIsUserCheckable
                          | Qt.ItemIsEnabled)
            item.setText(project)
            item.previous_name = project
            item.path = project_dir

            icon = QIcon()
            icon.addFile(f"bci:/primary/{icon_name}.svg", QSize(),
                         QIcon.Normal, QIcon.Off)
            item.setIcon(icon)
            item.icon_name = icon_name
Ejemplo n.º 25
0
    def clean_view(self):
        self.viewList.clear()

        origin = QListWidgetItem(_('Keine Historie Einträge'), self.viewList)
        origin.setIcon(IconRsc.get_icon('history'))