Ejemplo n.º 1
0
    def __init__(self, num_shots, success_first, success_remain, overheat):
        QWidget.__init__(self)
        self.setWindowTitle(translate("ui_outcome_widget_name"))
        layout = QVBoxLayout()
        values_layout = QVBoxLayout()
        ok_button_layout = QVBoxLayout()
        layout.addLayout(values_layout)
        layout.addLayout(ok_button_layout)

        shots = "{}: {}".format(translate("ui_num_shots_fired"), num_shots)
        label = QLabel(shots)
        values_layout.addWidget(label)

        success_first_shot = "{}: {}".format(
            translate("ui_num_successes_first"), success_first)
        label_hit_1 = QLabel(success_first_shot)
        values_layout.addWidget(label_hit_1)

        if num_shots > 1:
            success_remaining_shots = "{}: {}".format(
                translate("ui_num_successes_remaining"), success_remain)
            label_hit_rem = QLabel(success_remaining_shots)
            values_layout.addWidget(label_hit_rem)

        if overheat:
            overheat = "{}: {}".format(translate("ui_overheated_on"), overheat)
            label_overheat = QLabel(overheat)
            values_layout.addWidget(label_overheat)

        ok_button = QPushButton("OK")
        ok_button_layout.addWidget(ok_button)
        ok_button.clicked.connect(self.close_popup)

        self.setLayout(layout)
        self.show()
Ejemplo n.º 2
0
    def __init__(self, parent):
        super(QWidget, self).__init__(parent)
        p = self.palette()
        p.setColor(self.backgroundRole(), Qt.white)
        self.setPalette(p)
        self.setAutoFillBackground(True)
        # Create character sheet layout
        self.main_layout = QHBoxLayout(self)
        self.main_sheet_layout = QVBoxLayout()
        self.main_layout.addLayout(self.main_sheet_layout, 6)
        # self.actions_panel_layout = QVBoxLayout()
        # self.main_layout.addLayout(self.actions_panel_layout, 1)
        # self.actions_panel_layout.setSizeConstraint(3)
        # self.character = None
        self.tabs = QTabWidget()
        self.main_sheet_layout.addWidget(self.tabs, 9)

        # Define target field holders
        self.params_dict = {}
        self.skills_dict = {}
        self.attribute_dict = {}
        self.scrolls = {}
        self.notes_dict = {}
        self.equipment_tables = None

        self.tab1 = QWidget()
        self.tab2 = QWidget()
        self.tab3 = QWidget()
        self.tabs.addTab(self.tab1, translate("ui_character_tab"))
        self.tabs.addTab(self.tab2, translate("ui_equipment_tab"))
        self.tabs.addTab(self.tab3, translate("ui_misc_tab"))
Ejemplo n.º 3
0
    def __init__(self, armor):
        View.__init__(self)
        self.name = armor.ID
        self.item = armor
        layout = QVBoxLayout()
        line1_layout = QHBoxLayout()
        line1_layout.setContentsMargins(0, 0, 0, 0)
        p = self.palette()
        p.setColor(self.backgroundRole(), QColor(240, 240, 240))
        self.setPalette(p)
        self.setAutoFillBackground(True)
        self.equipped_checkbox = EquippedCheckbox()
        self.equipped_checkbox.setChecked(self.item.equipped_quantity > 0)
        self.equipped_checkbox.stateChanged.connect(self.equip)
        line1_layout.addWidget(self.equipped_checkbox)

        self.armor_name = LabelledLabel(label=translate("ui_item_name"))
        self.armor_name.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum)
        line1_layout.addWidget(self.armor_name)
        self.armor_parts = {}
        for armor_name in armor_names:
            armor_piece = LabelledLabel(label=translate(armor_name))
            self.armor_parts[armor_name] = armor_piece
            line1_layout.addWidget(armor_piece)
        self.weight = LabelledLabel(label=translate("ui_item_weight"))
        line1_layout.addWidget(self.weight)
        self.value = LabelledLabel(label=translate("ui_item_price"))
        line1_layout.addWidget(self.value)

        layout.addLayout(line1_layout)
        self.add_header_option("Edit", self.edit)
        layout.setContentsMargins(0, 0, 0, 0)
        self.fill_values()
        self.setLayout(layout)
Ejemplo n.º 4
0
 def __init__(self, name, button_text, content_widget, popup=None, label=None, **kwargs):
     QWidget.__init__(self)
     # self.parent = parent
     self.name = name
     self.kwargs = kwargs
     self.layout = QVBoxLayout()
     self.label = QLabel(translate(name))
     if label is not None:
         self.label = QLabel(translate(label))
     self.label.setStyleSheet("font: bold 14px")
     self.layout.addWidget(self.label)
     self.scroll = QScrollArea()
     self.scroll.setWidgetResizable(True)
     self.layout.addWidget(self.scroll)
     if button_text is not None:
         self.button = QPushButton(button_text)
         self.button.clicked.connect(lambda: self.open_popup())
         self.layout.addWidget(self.button)
     self.setLayout(self.layout)
     self.popup = popup
     self.current_popup = None
     self.content_widget = content_widget
     self.scroll_widget = QWidget()
     self.scroll_layout = QVBoxLayout()
     self.scroll_widget.setLayout(self.scroll_layout)
     self.scroll_layout.setContentsMargins(0, 0, 0, 0)
     self.scroll.setWidget(self.scroll_widget)
     self.scroll_layout.addSpacerItem(QSpacerItem(20, 20, QSizePolicy.Minimum, QSizePolicy.Expanding))
Ejemplo n.º 5
0
 def fill_values(self):
     self.weapon_name.set_text(translate(self.item.display) if self.item.display else self.item.name)
     self.weapon_damage.set_text(str(self.item.damage))
     self.weapon_damage_type.set_text(self.item.damage_type)
     self.weapon_pp.set_text(str(self.item.ap))
     if is_type(self.item, "ranged_weapon"):
         self.weapon_ammo_cost.set_text(str(self.item.shot_cost))
         self.weapon_current_power.link_value(self.item.power_magazine)
     self.weapon_value.set_text(str(self.item.price))
     self.weapon_weight.set_text(str(self.item.weight))
     self.equipped_checkbox.setChecked(self.item.equipped_quantity > 0)
     self.weapon_type.set_text(translate(self.item.weapon_type))
Ejemplo n.º 6
0
 def __init__(self, weapon):
     View.__init__(self)
     self.item = weapon
     self.name = weapon.ID
     p = self.palette()
     p.setColor(self.backgroundRole(), QColor(240, 240, 240))
     self.setPalette(p)
     self.setAutoFillBackground(True)
     layout = QVBoxLayout()
     layout.setSpacing(1)
     line1_layout = QHBoxLayout()
     line1_layout.setSpacing(4)
     line2_layout = QHBoxLayout()
     line1_layout.setSpacing(4)
     self.equipped_checkbox = EquippedCheckbox()
     self.equipped_checkbox.setChecked(self.item.equipped_quantity > 0)
     self.equipped_checkbox.stateChanged.connect(self.equip)
     line1_layout.addWidget(self.equipped_checkbox)
     self.weapon_name = LabelledLabel(label=translate("ui_item_name"))
     # self.weapon_name.setFixedWidth(120
     self.weapon_name.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum)
     line1_layout.addWidget(self.weapon_name, stretch=0)
     self.weapon_type = LabelledLabel(label=translate("ui_weapon_type"), align_flag=Qt.AlignCenter)
     line1_layout.addWidget(self.weapon_type, stretch=0)
     self.weapon_damage = LabelledLabel(label=translate("ui_weapon_damage"), align_flag=Qt.AlignCenter)
     line1_layout.addWidget(self.weapon_damage, stretch=0)
     self.weapon_pp = LabelledLabel(label=translate("ui_weapon_ap"), align_flag=Qt.AlignCenter)
     line1_layout.addWidget(self.weapon_pp, stretch=0)
     self.weapon_damage_type = LabelledLabel(label=translate("ui_weapon_damage_type"), align_flag=Qt.AlignCenter)
     line1_layout.addWidget(self.weapon_damage_type, stretch=0)
     if is_type(self.item, "ranged_weapon"):
         self.weapon_ammo_cost = LabelledLabel(label=translate("ui_weapon_shotcost"), align_flag=Qt.AlignCenter)
         line1_layout.addWidget(self.weapon_ammo_cost, stretch=0)
         self.weapon_current_power = InputLine(name="power_magazine", label=translate("ui_weapon_magazine"),
                                               dtype="int", maxwidth=60, align_flag=Qt.AlignCenter)
         line1_layout.addWidget(self.weapon_current_power, stretch=0)
         self.weapon_current_power.value_changed.connect(self.modify_item)
     self.weapon_weight = LabelledLabel(label=translate("ui_item_weight"), align_flag=Qt.AlignCenter)
     line2_layout.addWidget(self.weapon_weight, stretch=0)
     self.weapon_value = LabelledLabel(label=translate("ui_item_price"), align_flag=Qt.AlignCenter)
     line2_layout.addWidget(self.weapon_value, stretch=0)
     self.weapon_traits = LabelledLabel(label=translate("ui_item_traits"))  # TODO!
     self.weapon_traits.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum)
     line2_layout.addWidget(self.weapon_traits, stretch=0)
     layout.addLayout(line1_layout, stretch=0)
     layout.addLayout(line2_layout, stretch=0)
     # layout.addSpacerItem(QSpacerItem(20, 20, QSizePolicy.Minimum, QSizePolicy.Expanding))
     layout.setContentsMargins(1, 1, 1, 1)
     self.fill_values()
     self.add_header_option("Edit", self.edit)
     self.setLayout(layout)
Ejemplo n.º 7
0
    def __init__(self, popup=None, transfer_popup=None):
        QWidget.__init__(self)
        layout = QVBoxLayout()
        self.popup = popup
        self.items = None
        self.current_popup = None
        self.transfer_popup = transfer_popup
        self.equipped_table = ItemTable(equipped=True)
        self.equipped_table.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.equipped_table.item_qty_changed.connect(self.signal_forward)
        self.equipped_table.delete_item.connect(self.signal_delete)
        self.equipped_table.edit_item.connect(self.item_edit)
        equipped_table_layout = QVBoxLayout()
        label = QLabel(translate("ui_equipped_items"))
        label.setStyleSheet("font: bold 12px")
        label.setAlignment(Qt.AlignCenter)
        equipped_table_layout.addWidget(label)
        equipped_table_layout.addWidget(self.equipped_table)
        self.stash_table = ItemTable(equipped=False)
        self.stash_table.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.stash_table.item_qty_changed.connect(self.signal_forward)
        self.stash_table.delete_item.connect(self.signal_delete)
        self.stash_table.edit_item.connect(self.item_edit)
        stash_table_layout = QVBoxLayout()
        label = QLabel(translate("ui_stashed_items"))
        label.setStyleSheet("font: bold 12px")
        label.setAlignment(Qt.AlignCenter)
        stash_table_layout.addWidget(label)
        stash_table_layout.addWidget(self.stash_table)
        button_left = QToolButton()
        button_left.setArrowType(Qt.UpArrow)
        button_left.clicked.connect(lambda: self.open_transfer_popup(True))
        button_left.setFixedWidth(40)
        button_right = QToolButton()
        button_right.setArrowType(Qt.DownArrow)
        button_right.clicked.connect(lambda: self.open_transfer_popup(False))
        button_right.setFixedWidth(40)
        button_add = QPushButton(translate("ui_add_item_button"))
        button_add.clicked.connect(self.open_popup)
        button_add.setFixedWidth(60)
        buttons_layout = QHBoxLayout()
        # buttons_layout.addSpacerItem(QSpacerItem(20, 20, QSizePolicy.Minimum, QSizePolicy.Expanding))
        buttons_layout.addWidget(button_left)
        buttons_layout.addWidget(button_add)
        buttons_layout.addWidget(button_right)
        # buttons_layout.addSpacerItem(QSpacerItem(20, 20, QSizePolicy.Minimum, QSizePolicy.Expanding))

        layout.addLayout(equipped_table_layout, 10)
        layout.addLayout(buttons_layout, 1)
        layout.addLayout(stash_table_layout, 10)
        self.setLayout(layout)
Ejemplo n.º 8
0
 def __init__(self, equipped=True):
     QWidget.__init__(self)
     self.equipped = equipped
     self.table = QTableWidget(self)
     self.table.setMinimumWidth(500)
     self.table.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
     self.get_table()
     self.menu = QMenu(self)
     self.menu_actions = {translate("remove_item"): self.remove_item}
     self.setContextMenuPolicy(Qt.CustomContextMenu)
     self.menu.addAction(QAction(translate("remove_item"), self))
     self.customContextMenuRequested.connect(self.show_header_menu)
     self.item = None
     self.add_header_option(translate("edit_item"), self.item_edit)
Ejemplo n.º 9
0
    def __init__(self):
        super().__init__()
        self.title = translate("ui_window_name")
        self.setWindowTitle(self.title)
        self.current_file_path = None
        self.popup = None

        # Add menu bar
        bar = self.menuBar()
        file = bar.addMenu(translate("ui_menu_file"))
        new_sheet = QAction(translate("ui_new_sheet"), self)
        new_sheet.setShortcut("Ctrl+N")
        file.addAction(new_sheet)
        open_file = QAction(translate("ui_menu_load_sheet"), self)
        open_file.setShortcut("Ctrl+O")
        file.addAction(open_file)
        save = QAction(translate("ui_menu_save_sheet"), self)
        save.setShortcut("Ctrl+S")
        file.addAction(save)
        file.addSeparator()
        calc = QAction(translate("ui_menu_open_calculator"), self)
        calc.setShortcut("Ctrl+K")
        file.addAction(calc)
        file.addSeparator()
        save_as = QAction(translate("ui_menu_save_sheet_as"), self)
        save_as.setShortcut("Ctrl+Shift+S")
        file.addAction(save_as)
        exit_action = QAction(translate("ui_menu_quit"), self)
        file.addAction(exit_action)
        file.triggered[QAction].connect(self.process_trigger)
        # Add main widget
        self.window_widget = None
        self.show()
Ejemplo n.º 10
0
 def __init__(self, bonuses):
     QWidget.__init__(self)
     layout = QHBoxLayout()
     layout.setContentsMargins(0, 0, 0, 0)
     # bonuses
     if bonuses:
         self.label = QLabel(translate(bonuses[0].name))
         self.value = QLabel(str([bonuses[0].value]))
         self.cont = QLabel("...")
         layout.addWidget(self.label)
         layout.addWidget(self.value)
     if len(bonuses) > 1:
         layout.addWidget(self.cont)
     self.setToolTip("\n".join([translate(bonus.name)+": "+str(bonus.value) for bonus in bonuses]))
     self.setLayout(layout)
Ejemplo n.º 11
0
 def fill_tab3(self, notes_names):
     page3 = QVBoxLayout()
     for name in notes_names:
         field = LabelledTextEdit(name, label=translate("ui_{}".format(name)))
         self.notes_dict[name] = field
         page3.addWidget(field)
     self.tab3.setLayout(page3)
Ejemplo n.º 12
0
 def fill_table(self, data):
     data = sorted([item for item in data if item.type == "item"], key=lambda x: translate(x.display))
     data_len = len([item for item in data if item.equipped_quantity > 0]) if self.equipped else \
         len([item for item in data if (item.total_quantity != item.equipped_quantity) or item.total_quantity == 0])
     self.table.setRowCount(data_len)
     index = 0
     for item in data:
         value = item.equipped_quantity if self.equipped else item.total_quantity - item.equipped_quantity
         if self.equipped and value == 0:
             continue
         if not self.equipped and value == 0 and item.total_quantity != 0:
             continue
         self.table.setCellWidget(index, 0, QLabel(item.ID))
         counter_widget = ItemCounter(item.ID)
         counter_widget.set_value(str(value))
         counter_widget.value_changed.connect(self.item_changed)
         self.table.setCellWidget(index, 1, counter_widget)
         name_label = QLabel(item.name)
         name_label.setAlignment(Qt.AlignCenter)
         name_label.setToolTip(item.description)
         self.table.setCellWidget(index, 2, name_label)
         weight_label = QLabel(str(item.weight))
         weight_label.setAlignment(Qt.AlignCenter)
         self.table.setCellWidget(index, 3, weight_label)
         total_weight_label = QLabel("{:.1f}".format(float(item.weight) * value))
         total_weight_label.setAlignment(Qt.AlignCenter)
         self.table.setCellWidget(index, 4, total_weight_label)
         index += 1
     self.table.resizeRowsToContents()
     self.table.show()
Ejemplo n.º 13
0
    def __init__(self, equipment_item):
        View.__init__(self)
        layout = QHBoxLayout()
        layout.setContentsMargins(5, 1, 1, 1)
        self.item = equipment_item
        self.name = equipment_item.ID
        name_layout = QVBoxLayout()
        name = QLabel(translate(equipment_item.name))
        name_layout.addWidget(name)
        self.values_layout = QVBoxLayout()
        cost_layout = QVBoxLayout()
        cost = QLabel("TODO COST")  # TODO
        cost_layout.addWidget(cost)
        layout.addLayout(name_layout)
        layout.addSpacerItem(QSpacerItem(10, 10, QSizePolicy.Expanding, QSizePolicy.Minimum))
        layout.addLayout(self.values_layout)
        layout.addLayout(cost_layout)
        checkbox_layout = QVBoxLayout()
        self.equipped_checkbox = QCheckBox()
        self.equipped_checkbox.setChecked(self.item.equipped_quantity > 0)
        self.equipped_checkbox.stateChanged.connect(lambda x: self.update_parameters("equipped", x))
        checkbox_layout.addWidget(self.equipped_checkbox)
        layout.addLayout(checkbox_layout)
        self.setLayout(layout)
        view = PropertyView(self.item.bonuses)
        self.values_layout.addWidget(view)
        # for bonus in :
        #

        self.add_header_option("Edit", self.edit)
        self.setLayout(layout)
Ejemplo n.º 14
0
    def __init__(self, ability):
        View.__init__(self)
        self.item = ability
        self.name = ability.name
        layout = QVBoxLayout()
        self.display_name = translate(ability.name)  # TODO
        self.description = translate(ability.description)
        self.setToolTip(translate(ability.description))
        self.display = QLineEdit()
        layout.addWidget(self.display)

        self.display_name += " {}".format(ability.value) \
            if not is_types(ability, ["ability", "trait", "fire_mode"]) else ""
        self.display.setText(self.display_name)
        self.display.setEnabled(False)
        self.setLayout(layout)
        self.layout().setContentsMargins(0, 0, 0, 0)
Ejemplo n.º 15
0
 def get_table(self):
     self.table.setColumnCount(5)
     self.table.setSelectionBehavior(1)
     self.table.setHorizontalScrollBarPolicy(1)
     self.table.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
     self.table.setColumnHidden(0, True)
     self.table.verticalHeader().setVisible(False)
     self.table.setHorizontalHeaderLabels([translate("ui_item_name"), translate("ui_item_quantity"),
                                           translate("ui_item_name"),
                                           translate("ui_item_weight"),
                                           translate("ui_item_total_weight")])
     header = self.table.horizontalHeader()
     header.setSectionResizeMode(0, QHeaderView.ResizeToContents)
     header.setSectionResizeMode(1, QHeaderView.ResizeToContents)
     header.setSectionResizeMode(2, QHeaderView.Stretch)
     header.setSectionResizeMode(3, QHeaderView.ResizeToContents)
     header.setSectionResizeMode(4, QHeaderView.ResizeToContents)
Ejemplo n.º 16
0
    def open_file_name_dialog(self, pop_type):

        self.popup = QFileDialog()
        options = QFileDialog.Options()
        filepath = ""
        if pop_type == "open":
            filepath = self.popup.getOpenFileName(self, translate("ui_load_sheet_window_title"), os.getcwd(),
                                                   "Character files (*.cht)", options=options)

        if pop_type == "save":
            filepath = self.popup.getSaveFileName(self, translate("ui_save_sheet_window_title"), os.getcwd(),
                                                   "Character files (*.cht)", options=options)
        self.popup = None
        if not filepath[0]:
            return
        self.current_file_path = filepath[0]
        self.directory_signal.emit(filepath[0], pop_type)
Ejemplo n.º 17
0
 def fill_armor(self, armor_names, alternative=False):
     inner_armor_layout = QVBoxLayout()
     head = QHBoxLayout()
     # head.setContentsMargins(0, 0, 0, 0)
     arms = QHBoxLayout()
     # arms.setContentsMargins(0, 0, 0, 0)
     legs = QHBoxLayout()
     # legs.setContentsMargins(0, 0, 0, 0)
     life = QHBoxLayout()
     # life.setContentsMargins(0, 0, 0, 0)
     label_layout = QHBoxLayout()
     label = QLabel(translate("ui_armor"))
     label.setStyleSheet("font: bold 14px")
     # label.setContentsMargins(0, 0, 0, 0)
     label.setAlignment(Qt.AlignCenter)
     label_layout.addWidget(label)
     # label_layout.setContentsMargins(0, 0, 0, 0)
     inner_armor_layout.addLayout(label_layout)
     inner_armor_layout.setSpacing(0)
     inner_armor_layout.addLayout(head, 1)
     inner_armor_layout.addLayout(arms, 2)
     inner_armor_layout.addLayout(legs, 1)
     inner_armor_layout.addLayout(life, 1)
     total_hp = InputLine("param_hp_max", val_dict=self.params_dict,
                          label=translate("param_hp_max"), maxwidth=35, spacer="upper")
     current_hp = InputLine("param_hp_current", val_dict=self.params_dict,
                            label=translate("param_hp_current"), maxwidth=35, spacer="upper")
     total_pp = InputLine("param_pp_total", val_dict=self.params_dict,
                          label=translate("param_pp_total"), maxwidth=35, spacer="upper")
     current_pp = InputLine("param_pp_curr", val_dict=self.params_dict,
                            label=translate("param_pp_curr"), maxwidth=35, spacer="upper")
     fatigue = InputLine("param_fatigue", val_dict=self.params_dict,
                         label=translate("param_fatigue") if not alternative else translate("param_battery"),
                         maxwidth=35, spacer="upper")
     life.addWidget(total_hp)
     life.addWidget(current_hp)
     life.addWidget(total_pp)
     life.addWidget(current_pp)
     life.addWidget(fatigue)
     for index, name in enumerate(armor_names):
         na = InputLine(name=name, val_dict=self.params_dict, enabled=False,
                        label=translate(name), maxwidth=30, spacer="lower")
         na.setContentsMargins(0, 0, 0, 0)
         if index < 1:
             head.addWidget(na)
         elif index < 4:
             arms.addWidget(na)
         else:
             legs.addWidget(na)
     inner_armor_layout.setContentsMargins(0, 0, 0, 0)
     return inner_armor_layout
Ejemplo n.º 18
0
 def fill_names(self, character_names):
     inner_names_layout = QHBoxLayout()
     layout_1 = QVBoxLayout()
     layout_2 = QVBoxLayout()
     layout_3 = QVBoxLayout()
     inner_names_layout.addLayout(layout_1, 2)
     inner_names_layout.addLayout(layout_2, 4)
     inner_names_layout.addLayout(layout_3, 1)
     for index, name in enumerate(character_names):
         na = NameView(name=name, display_name=translate(name), val_dict=self.params_dict)
         if index < 3:
             layout_1.addWidget(na)
         else:
             layout_2.addWidget(na)
     total_xp = InputLine("param_xp_total", dtype="int", val_dict=self.params_dict,
                          label=translate("param_xp_total"), maxwidth=60)
     free_xp = InputLine("param_xp_free", dtype="int", val_dict=self.params_dict,
                         label=translate("param_xp_free"), maxwidth=60)
     layout_3.addWidget(total_xp)
     layout_3.addWidget(free_xp)
     return inner_names_layout
Ejemplo n.º 19
0
 def fill_skills(self, skill_names, alternative):
     skills1_layout = QVBoxLayout()
     skills2_layout = QVBoxLayout()
     label = QLabel(translate("ui_skills"))
     label.setStyleSheet("font: bold 14px")
     skills1_layout.addWidget(label)
     skills1_layout.setSpacing(1)
     label = QLabel(" ")
     label.setStyleSheet("font: bold 14px")
     skills2_layout.addWidget(label)
     skills2_layout.setSpacing(1)
     max_per_column = 15 if alternative else 25
     skill_names = sorted(skill_names, key=lambda x: translate(x))
     for index, skill in enumerate(skill_names):
         ski = SkillView(name=skill, display_name=translate(skill),
                         val_dict=self.skills_dict, alternative=alternative)
         if index < max_per_column:
             skills1_layout.addWidget(ski)
         else:
             skills2_layout.addWidget(ski, stretch=0)
     skills1_layout.addSpacerItem(QSpacerItem(1, 1, QSizePolicy.Minimum, QSizePolicy.Expanding))
     skills2_layout.addSpacerItem(QSpacerItem(1, 1, QSizePolicy.Minimum, QSizePolicy.Expanding))
     return skills1_layout, skills2_layout
Ejemplo n.º 20
0
 def update_size(self, warmup=False):
     sizes = [-20, -10, 0, 10, 30, 50]
     size_names = [
         translate(a) for a in [
             "param_size_tiny", "param_size_small", "param_size_normal",
             "param_size_large", "param_size_giant", "param_size_enormous"
         ]
     ]
     slider_value = self.size_slider.value()
     self.size_name.setText(size_names[slider_value])
     self.size_modifier.setText(
         (str(sizes[slider_value]) if sizes[slider_value] <= 0 else "+" +
          str(sizes[slider_value])))
     if not warmup:
         self.update_chance()
Ejemplo n.º 21
0
 def __init__(self):
     QWidget.__init__(self)
     self.layout = QVBoxLayout()
     self.label = QLabel(translate("ui_item_equipped"))
     self.label.setStyleSheet("font: 8px")
     self.label.setContentsMargins(0, 0, 0, 0)
     self.layout.addWidget(self.label)
     self.layout.setSpacing(0)
     self.checkbox = QCheckBox()
     self.checkbox.setContentsMargins(0, 0, 0, 0)
     self.layout.addWidget(self.checkbox)
     # self.layout.addItem(QSpacerItem(10, 10, QSizePolicy.Minimum, QSizePolicy.Expanding))
     self.layout.setContentsMargins(0, 0, 0, 0)
     self.checkbox.stateChanged.connect(lambda: self.stateChanged.emit(self.checkbox.isChecked()))
     self.setLayout(self.layout)
Ejemplo n.º 22
0
 def update_distances(self, warmup=False):
     slider_value = self.distance_slider.value()
     if slider_value % 10 != 0:
         slider_value = round(slider_value / 10) * 10
         self.distance_slider.setValue(slider_value)
     index = modifier_ranges.index(slider_value)
     self.current_distance.setText(distances[index])
     self.current_distance_mod.setText(
         (str(slider_value) if slider_value <= 0 else "+" +
          str(slider_value)))
     distance_type = [
         key for key in distance_types
         if distances[index] in distance_types[key]
     ][0]
     self.current_distance_type.setText(translate(distance_type))
     self.icon.update_to_size(int(150 / (len(distances) - index)))
     if not warmup:
         self.update_chance()
Ejemplo n.º 23
0
    def fill_tab1(self, character_names, attribute_names, skill_names, armor_names, validator, alternative=False):
        page1 = QVBoxLayout()
        self.tab1.setLayout(page1)
        # Parameters layout
        names_layout = QHBoxLayout()
        page1.addLayout(names_layout)
        attributes_layout = QHBoxLayout()
        attributes_layout.setContentsMargins(0, 0, 0, 0)
        page1.addLayout(attributes_layout)
        parameters_layout = self.fill_parameters()
        page1.addLayout(parameters_layout)
        character_layout = QHBoxLayout()
        page1.addLayout(character_layout)
        # page1.addSpacerItem(QSpacerItem(40, 200, QSizePolicy.Minimum, QSizePolicy.Expanding))
        column2_layout = QVBoxLayout()
        skills_hitbox_layout = QHBoxLayout()
        skills1_layout, skills2_layout = self.fill_skills(skill_names, alternative=alternative)
        character_layout.addLayout(skills1_layout)
        skills_hitbox_layout.addLayout(skills2_layout)
        character_layout.addLayout(column2_layout)
        column2_layout.addLayout(skills_hitbox_layout)
        abilities_layout = QVBoxLayout()
        column2_layout.addLayout(abilities_layout)
        names_inner_layout = self.fill_names(character_names)
        inner_armor_layout = self.fill_armor(armor_names, alternative)
        names_layout.addLayout(names_inner_layout)
        hitbox_widget = QWidget()
        hitbox_widget.setMinimumWidth(250)
        # hitbox_widget.setMinimumHeight(450)
        skills_hitbox_layout.addWidget(hitbox_widget)
        hitbox_widget.setLayout(inner_armor_layout)
        # Set Attributes
        self.fill_attributes(attributes_layout, attribute_names, alternative)
        # Set skills
        abilities = ScrollContainer("ui_abilities", translate("ui_ability_add_button"), AbilityView,
                                    validator=validator, alternative=alternative, popup=AbilityPopup)
        self.scrolls["abilities"] = abilities
        abilities_layout.addWidget(abilities)

        current_weapon_layout = QVBoxLayout()
        self.current_weapon_widget = ActiveWeaponView()
        current_weapon_layout.addWidget(self.current_weapon_widget)
        page1.addLayout(current_weapon_layout)
Ejemplo n.º 24
0
    def __init__(self):
        QWidget.__init__(self)
        layout = QHBoxLayout()
        button_left_layout = QVBoxLayout()
        weapon_layout = QVBoxLayout()
        button_right_layout = QVBoxLayout()
        layout.addLayout(button_left_layout)
        layout.addLayout(weapon_layout)
        layout.addLayout(button_right_layout)
        self.setLayout(layout)

        button_left = QToolButton()
        button_left.setArrowType(Qt.LeftArrow)
        button_left.clicked.connect(lambda: self.emit_swap(-1))
        button_left_layout.addWidget(button_left)

        button_right = QToolButton()
        button_right.setArrowType(Qt.RightArrow)
        button_right.clicked.connect(lambda: self.emit_swap(1))
        button_right_layout.addWidget(button_right)

        weapon_line1 = QHBoxLayout()
        weapon_line2 = QHBoxLayout()
        weapon_layout.addLayout(weapon_line1)
        weapon_layout.addLayout(weapon_line2)

        self.weapon = None
        self.weapon_name = LabelledLabel("", align_flag=Qt.AlignCenter, label=translate("ui_item_name"))
        self.weapon_damage = LabelledLabel("", align_flag=Qt.AlignCenter, label=translate("damage"))
        self.weapon_ap = LabelledLabel("", align_flag=Qt.AlignCenter, label=translate("ap"))
        self.weapon_damage_type = LabelledLabel("", align_flag=Qt.AlignCenter, label=translate("damage_type"))
        weapon_line1.addWidget(self.weapon_name)
        weapon_line1.addWidget(self.weapon_damage)
        weapon_line1.addWidget(self.weapon_ap)
        weapon_line1.addWidget(self.weapon_damage_type)

        self.traits = LabelledLabel("", align_flag=Qt.AlignCenter, label=translate("name"))
        self.shoot_button = QPushButton(translate("shoot"))
        self.shoot_button.clicked.connect(self.emit_shoot)
        self.reload_button = QPushButton(translate("reload"))
        self.reload_button.clicked.connect(self.reload)
        weapon_line2.addWidget(self.traits, stretch=4)
        weapon_line2.addWidget(self.shoot_button, stretch=1)
        weapon_line2.addWidget(self.reload_button, stretch=1)
        self.update_fields()
Ejemplo n.º 25
0
 def process_trigger(self, q):
     if q.text() == translate("ui_menu_load_sheet"):
         self.open_file_name_dialog("open")
     if q.text() == translate("ui_menu_save_sheet"):
         if self.current_file_path is None:
             self.open_file_name_dialog("save")
         else:
             self.directory_signal.emit(self.current_file_path, "save")
     if q.text() == translate("ui_menu_save_sheet_as"):
         self.open_file_name_dialog("save")
     if q.text() == translate("ui_new_sheet"):
         self.open_new_sheet_popup()
     if q.text() == translate("ui_menu_quit"):
         self.exit.emit()
     if q.text() == translate("ui_menu_open_calculator"):
         self.open_calculator()
Ejemplo n.º 26
0
    def __init__(self, parent=None, character=None, weapon=None):
        QWidget.__init__(self)
        self.setWindowTitle(translate("ui_shooting_app"))
        if parent is not None:
            self.setParent(parent)
        self.popup = None
        window_layout = QVBoxLayout()
        main_layout = QHBoxLayout()
        buttons_layout = QHBoxLayout()
        window_layout.addLayout(main_layout)
        window_layout.addLayout(buttons_layout)
        shoot_layout = QVBoxLayout()
        cover_layout = QVBoxLayout()
        main_layout.addLayout(shoot_layout)
        main_layout.addLayout(cover_layout)
        self.setLayout(window_layout)

        parameters_layout = QHBoxLayout()
        distance_view_layout = QVBoxLayout()
        distance_slider_layout = QVBoxLayout()
        shoot_layout.addLayout(parameters_layout)
        shoot_layout.addLayout(distance_view_layout)
        shoot_layout.addLayout(distance_slider_layout)

        # Left side
        # Params
        self.skill_value = InputLine("skill",
                                     enabled=True,
                                     maxwidth=80,
                                     dtype="int",
                                     spacer="upper",
                                     label=translate("ui_ranged_skill_value"))
        self.skill_value.setText("0")
        self.skill_value.value_changed.connect(lambda: self.update_distances())
        self.gm_modifier = InputLine("gm_mod",
                                     enabled=True,
                                     dtype="int",
                                     maxwidth=80,
                                     spacer="upper",
                                     label=translate("ui_gm_modifier"))
        self.gm_modifier.setText("0")
        self.gm_modifier.value_changed.connect(lambda: self.update_distances())
        self.break_chance = InputLine("break_chance",
                                      enabled=True,
                                      dtype="int",
                                      maxwidth=80,
                                      spacer="upper",
                                      label=translate("ui_break_chance"))
        self.break_chance.setText("0")
        self.break_increment = InputLine("break_increment",
                                         enabled=True,
                                         dtype="int",
                                         spacer="upper",
                                         maxwidth=80,
                                         label=translate("ui_break_increment"))
        self.break_increment.setText("0")
        self.num_shots = InputLine("num_shots",
                                   enabled=True,
                                   dtype="int",
                                   spacer="upper",
                                   maxwidth=80,
                                   label=translate("ui_num_shots"))
        self.num_shots.setText("10")
        if weapon is not None:
            skill = weapon.base_skill
            if character is not None:
                print(skill)
                skill_value = character.calculate_skill(skill)
                skill_value = max(map(int, skill_value))
                self.skill_value.setText(skill_value)
        parameters_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        parameters_layout.addWidget(self.skill_value)
        parameters_layout.addWidget(self.gm_modifier)
        parameters_layout.addWidget(self.break_chance)
        parameters_layout.addWidget(self.break_increment)
        parameters_layout.addWidget(self.num_shots)
        parameters_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))

        # Icon
        internal_widget = QWidget()
        internal_widget.setFixedHeight(300)
        distance_view_internal_layout = QHBoxLayout()
        internal_widget.setLayout(distance_view_internal_layout)
        distance_view_internal_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        self.icon = IconWidget(QPixmap(path.join("Images", "Silhouette.png")))
        distance_view_internal_layout.addWidget(self.icon)
        distance_view_internal_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        distance_view_layout.addWidget(internal_widget)

        # Slider
        distance_values_layout = QHBoxLayout()
        slider_layout = QVBoxLayout()
        distance_slider_layout.addLayout(distance_values_layout)
        distance_slider_layout.addLayout(slider_layout)
        distance_values_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        self.current_distance = InputLine("distance",
                                          enabled=False,
                                          label=translate("ui_distance_value"))
        distance_values_layout.addWidget(self.current_distance)
        self.current_distance_type = InputLine(
            "distance_type",
            enabled=False,
            label=translate("ui_distance_type"))
        distance_values_layout.addWidget(self.current_distance_type)
        self.current_distance_mod = InputLine(
            "distance_modifier",
            enabled=False,
            label=translate("ui_distance_modifier"))
        distance_values_layout.addWidget(self.current_distance_mod)
        distance_values_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        self.distance_slider = QSlider(Qt.Horizontal)
        self.distance_slider.setMinimum(-50)
        self.distance_slider.setMaximum(40)
        self.distance_slider.setTickPosition(QSlider.TicksBelow)
        self.distance_slider.setTickInterval(10)
        self.distance_slider.setSingleStep(10)
        self.distance_slider.setValue(0)
        self.distance_slider.valueChanged.connect(
            lambda: self.update_distances())
        slider_layout.addWidget(self.distance_slider)

        # Right side
        target_layout = QVBoxLayout()
        size_slider_layout = QVBoxLayout()
        target_layout.addLayout(size_slider_layout)
        icon_layout = QVBoxLayout()
        target_layout.addLayout(icon_layout)
        cover_slider_layout = QVBoxLayout()
        target_layout.addLayout(cover_slider_layout)
        main_layout.addLayout(target_layout)

        # Size slider
        size_slider_values_layout = QHBoxLayout()
        size_slider_slider_layout = QVBoxLayout()
        size_slider_layout.addLayout(size_slider_values_layout)
        size_slider_values_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        self.size_name = InputLine("size_name",
                                   label=translate("ui_size_name"),
                                   enabled=False)
        size_slider_values_layout.addWidget(self.size_name)
        self.size_modifier = InputLine("size_modifier",
                                       label=translate("ui_size_mod"),
                                       enabled=False)
        size_slider_values_layout.addWidget(self.size_modifier)
        size_slider_values_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        size_slider_layout.addLayout(size_slider_slider_layout)
        self.size_slider = QSlider(Qt.Horizontal)
        self.size_slider.setMinimum(0)
        self.size_slider.setMaximum(5)
        self.size_slider.setTickPosition(QSlider.TicksBelow)
        self.size_slider.setTickInterval(1)
        self.size_slider.setSingleStep(1)
        self.size_slider.setValue(2)
        self.size_slider.valueChanged.connect(lambda: self.update_size())
        size_slider_slider_layout.addWidget(self.size_slider)
        # Icon
        cover_internal_widget = QWidget()
        cover_internal_widget.setFixedHeight(300)
        cover_view_internal_layout = QHBoxLayout()
        cover_internal_widget.setLayout(cover_view_internal_layout)
        cover_view_internal_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        self.trooper_icon = CoverIconWidget(
            QPixmap(path.join("Images", "Stormtrooper.png")))
        cover_view_internal_layout.addWidget(self.trooper_icon)
        cover_view_internal_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        icon_layout.addWidget(cover_internal_widget)

        # Cover slider
        cover_slider_values_layout = QHBoxLayout()
        cover_slider_slider_layout = QVBoxLayout()
        cover_slider_layout.addLayout(cover_slider_values_layout)
        cover_slider_values_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        self.cover_name = InputLine("cover_name",
                                    label=translate("ui_cover_name"),
                                    enabled=False)
        cover_slider_values_layout.addWidget(self.cover_name)
        self.cover_modifier = InputLine("cover_modifier",
                                        label=translate("ui_cover_mod"),
                                        enabled=False)
        cover_slider_values_layout.addWidget(self.cover_modifier)
        cover_slider_values_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        cover_slider_layout.addLayout(cover_slider_slider_layout)
        self.cover_slider = QSlider(Qt.Horizontal)
        self.cover_slider.setMinimum(0)
        self.cover_slider.setMaximum(75)
        self.cover_slider.setTickPosition(QSlider.TicksBelow)
        self.cover_slider.setTickInterval(25)
        self.cover_slider.setSingleStep(25)
        self.cover_slider.setValue(0)
        self.cover_slider.valueChanged.connect(lambda: self.update_cover())
        cover_slider_slider_layout.addWidget(self.cover_slider)

        # Buttons
        self.current_hit_chance = InputLine("hit_chance",
                                            enabled=False,
                                            dtype="int",
                                            label=translate("ui_hit_chance"))
        shoot_one_button = QPushButton(translate("ui_shoot_once"))
        shoot_one_button.clicked.connect(self.shoot_one)
        shoot_series_button = QPushButton(translate("ui_shoot_series"))
        shoot_series_button.clicked.connect(self.shoot_series)
        cancel_button = QPushButton(translate("ui_cancel"))
        cancel_button.clicked.connect(self.close_self)
        buttons_layout.addSpacerItem(
            QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum))
        buttons_layout.addWidget(self.current_hit_chance)
        buttons_layout.addWidget(shoot_one_button)
        buttons_layout.addWidget(shoot_series_button)
        buttons_layout.addWidget(cancel_button)

        self.update_distances(True)
        self.update_size(True)
        self.update_cover(True)
        self.update_chance()
Ejemplo n.º 27
0
 def fill_attributes(self, attributes_layout, attribute_names, alternative):
     for attribute in attribute_names:
         att = AttributeView(name=attribute, display_name=translate(attribute),
                             val_dict=self.attribute_dict, alternative=alternative)
         attributes_layout.addWidget(att, stretch=0)
Ejemplo n.º 28
0
    def fill_parameters(self):
        parameters_layout = QHBoxLayout()
        encumbrance_layout = QVBoxLayout()
        label = QLabel(translate("ui_encumbrance"))
        label.setStyleSheet("font: bold 12px")
        label.setAlignment(Qt.AlignCenter)
        encumbrance_layout.addWidget(label)
        encumbrance_values_layout = QHBoxLayout()
        encumbrance_current = InputLine("param_encumbrance_current", enabled=False, val_dict=self.params_dict,
                                        dtype="float", label=translate("param_encumbrance_current"), maxwidth=50)
        encumbrance_low = InputLine("param_encumbrance_low", enabled=False, val_dict=self.params_dict, dtype="int",
                                    label=translate("param_encumbrance_low"), maxwidth=50)
        encumbrance_med = InputLine("param_encumbrance_med", enabled=False, val_dict=self.params_dict, dtype="int",
                                    label=translate("param_encumbrance_med"), maxwidth=50)
        encumbrance_high = InputLine("param_encumbrance_high", enabled=False, val_dict=self.params_dict, dtype="int",
                                     label=translate("param_encumbrance_high"), maxwidth=50)
        encumbrance_values_layout.addWidget(encumbrance_current)
        encumbrance_values_layout.addWidget(encumbrance_low)
        encumbrance_values_layout.addWidget(encumbrance_med)
        encumbrance_values_layout.addWidget(encumbrance_high)
        encumbrance_layout.addLayout(encumbrance_values_layout)

        reputation_layout = QVBoxLayout()
        label = QLabel(translate("ui_reputation"))
        label.setStyleSheet("font: bold 12px")
        label.setAlignment(Qt.AlignCenter)
        reputation_layout.addWidget(label)
        reputation_values_layout = QHBoxLayout()
        reputation_bad = InputLine("param_reputation_bad", val_dict=self.params_dict, dtype="int",
                                   label=translate("param_reputation_bad"), maxwidth=50)
        reputation_good = InputLine("param_reputation_good", val_dict=self.params_dict, dtype="int",
                                    label=translate("param_reputation_good"), maxwidth=50)
        reputation_total = InputLine("param_reputation_total", val_dict=self.params_dict, dtype="int", enabled=False,
                                     label=translate("param_reputation_total"), maxwidth=50)
        reputation_values_layout.addWidget(reputation_bad)
        reputation_values_layout.addWidget(reputation_total)
        reputation_values_layout.addWidget(reputation_good)
        reputation_layout.addLayout(reputation_values_layout)

        speed_layout = QVBoxLayout()
        label = QLabel(translate("ui_speed"))
        label.setStyleSheet("font: bold 12px")
        label.setAlignment(Qt.AlignCenter)
        speed_layout.addWidget(label)
        speed_values_layout = QHBoxLayout()
        speed_low = InputLine("param_speed_low", enabled=False, val_dict=self.params_dict, dtype="int",
                              label=translate("param_speed_low"), maxwidth=50)
        speed_med = InputLine("param_speed_med", enabled=False, val_dict=self.params_dict, dtype="int",
                              label=translate("param_speed_med"), maxwidth=50)
        speed_high = InputLine("param_speed_high", enabled=False, val_dict=self.params_dict, dtype="int",
                               label=translate("param_speed_high"), maxwidth=50)
        speed_values_layout.addWidget(speed_low)
        speed_values_layout.addWidget(speed_med)
        speed_values_layout.addWidget(speed_high)
        speed_layout.addLayout(speed_values_layout)

        parameters_layout.addLayout(encumbrance_layout)
        parameters_layout.addLayout(reputation_layout)
        parameters_layout.addLayout(speed_layout)
        return parameters_layout
Ejemplo n.º 29
0
    def fill_tab2(self, alternative=False):
        page2 = QVBoxLayout()
        # Equipment panel
        equipment_tabs = QTabWidget()
        page2.addWidget(equipment_tabs, 1)
        tab1 = QWidget()
        tab2 = QWidget()
        tab3 = QWidget()
        equipment_tabs.addTab(tab1, translate("ui_weapons"))
        equipment_tabs.addTab(tab2, translate("ui_armors"))
        equipment_tabs.addTab(tab3, translate("ui_modifiers"))
        tab1_layout = QVBoxLayout()
        tab2_layout = QVBoxLayout()
        tab3_layout = QVBoxLayout()
        tab1.setLayout(tab1_layout)
        tab2.setLayout(tab2_layout)
        tab3.setLayout(tab3_layout)

        weapons_scroll = ConditionalScrollContainer("ui_weapons", translate("ui_weapons_add_button"), WeaponView,
                                                    popup=ItemListPopup, conditions=["weapon"])
        self.scrolls["weapons"] = weapons_scroll
        tab1_layout.addWidget(weapons_scroll)
        armor_scroll = ConditionalScrollContainer("ui_armors", translate("ui_armor_add_button"), ArmorView,
                                                  popup=ItemListPopup, conditions=["armor"])
        self.scrolls["armor"] = armor_scroll
        tab2_layout.addWidget(armor_scroll)

        modifier_scroll = ConditionalScrollContainer("ui_modifiers", translate("ui_modifier_add_button"),
                                                     ModifierItemView, conditions=["implant", "modifier", "bionic"],
                                                     popup=ItemListPopup, alternative=alternative)
        self.scrolls["modifiers"] = modifier_scroll
        tab3_layout.addWidget(modifier_scroll)

        if alternative:
            tab4 = QWidget()
            tab5 = QWidget()
            equipment_tabs.addTab(tab4, translate("ui_modules"))
            equipment_tabs.addTab(tab5, translate("ui_parts"))
            tab4_layout = QVBoxLayout()
            tab5_layout = QVBoxLayout()
            tab4.setLayout(tab4_layout)
            tab5.setLayout(tab5_layout)

            modules_scroll = ConditionalScrollContainer("ui_modules", translate("ui_module_add_button"),
                                                        ModifierItemView, conditions=["droid_module"],
                                                        popup=ItemListPopup, alternative=alternative)
            self.scrolls["modules"] = modules_scroll
            tab4_layout.addWidget(modules_scroll)

            parts_scroll = ConditionalScrollContainer("ui_parts", translate("ui_part_add_button"),
                                                      ModifierItemView, conditions=["droid_part"],
                                                      popup=ItemListPopup, alternative=alternative)
            self.scrolls["parts"] = parts_scroll
            tab5_layout.addWidget(parts_scroll)

        # items
        equipment_and_money = QHBoxLayout()
        name = "notes_money"
        money = LabelledTextEdit(name, label=translate("ui_{}".format(name)))
        self.notes_dict[name] = money
        self.equipment_tables = EquipmentWidget(ItemPopup, ItemMovePopup)
        equipment_and_money.addWidget(self.equipment_tables, 3)
        equipment_and_money.addWidget(money, 1)
        page2.addLayout(equipment_and_money, 2)
        self.tab2.setLayout(page2)