(self, item_: tuple = None)
| 117 | print("╚" + "═" * (max_width + 6) + "╝") |
| 118 | |
| 119 | def create_menu(self, item_: tuple = None): |
| 120 | # Menu items |
| 121 | menu_items = [ |
| 122 | "", # Menu Separator |
| 123 | ("🗒️ Open Logs", self._open_logs), |
| 124 | ("📂 Program Files", self._open_program_location), |
| 125 | "", # Menu Separator |
| 126 | ("🏠 Homepage", self._open_homepage), |
| 127 | ("❓ Help", self._open_help), |
| 128 | ("💟 Donate", self._open_donate), |
| 129 | ("🌐 GitHub", self._open_github), |
| 130 | "", # Menu Separator |
| 131 | ("🔒 Logoff and Quit", self._on_logoff), |
| 132 | ("❌ Quit", self._on_quit), |
| 133 | ] |
| 134 | |
| 135 | # Add connect/disconnect option (top of the menu - 0 index) |
| 136 | if not self.is_connected: |
| 137 | menu_items.insert(0, ("🔗 Connect", self._on_connect)) |
| 138 | else: |
| 139 | if self.is_disconnecting and self.disconnecting_items is not None: |
| 140 | menu_items.insert( |
| 141 | self.disconnecting_items[1], |
| 142 | (self.disconnecting_items[0], self.disconnecting_items[2]), |
| 143 | ) |
| 144 | else: |
| 145 | menu_items.insert(0, ("⛓️💥 Disconnect", self._on_disconnect)) |
| 146 | |
| 147 | # Add update option (before the last 3 items) |
| 148 | if self.new_version_available is not None and self.new_version_available[0]: |
| 149 | menu_items.insert( |
| 150 | len(menu_items) - 3, |
| 151 | ( |
| 152 | f"🔄 Update ({self.new_version_available[2]} ➞ {self.new_version_available[1]})", |
| 153 | self._on_update, |
| 154 | ), |
| 155 | ) |
| 156 | |
| 157 | # Add files download option (top of the menu - 0 index) |
| 158 | if self.is_file_download_enabled and self.file_download_items is not None: |
| 159 | menu_items.insert( |
| 160 | self.file_download_items[1], |
| 161 | (self.file_download_items[0], self.file_download_items[2]), |
| 162 | ) |
| 163 | |
| 164 | # Add stats option (top of the menu - 0 index) |
| 165 | if self.previous_stats_items is not None: |
| 166 | menu_items.insert( |
| 167 | self.previous_stats_items[1], |
| 168 | (self.previous_stats_items[0], self.previous_stats_items[2]), |
| 169 | ) |
| 170 | |
| 171 | # Create numbered menu |
| 172 | counter = count(1) |
| 173 | numbered_menu = { |
| 174 | next(counter): item for item in menu_items if isinstance(item, tuple) |
| 175 | } |
| 176 |
no test coverage detected