Skip to content

Commit 52fff52

Browse files
committed
reworked how tables are filled
1 parent 9779a59 commit 52fff52

File tree

2 files changed

+24
-67
lines changed

2 files changed

+24
-67
lines changed

gui.py

Lines changed: 10 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
QToolButton, QFileDialog, QItemDelegate, QHBoxLayout, QVBoxLayout, QStatusBar
3131
from PyQt5.QtGui import QIcon, QFont, QPixmap, QDesktopServices
3232
from PyQt5.QtCore import QRect, Qt, QUrl, QMetaObject
33-
from assets.colors import Orange, Purple, Cyan, Pink, LGreen, DGreen, Yellow, Red, White
3433
from utils.config import Config
3534
from utils.logger import Logger
3635
from version import __version__
@@ -292,64 +291,18 @@ def fill_tables(self, players):
292291
y = tables[2]
293292
tables[2] += 1
294293

295-
item = QTableWidgetItem(player.player_name)
296-
item.setFont(QFont("Segoe UI", 10))
297-
table.setItem(y, 0, item)
298-
299-
item = QTableWidgetItem(player.ship_name)
300-
item.setFont(QFont("Segoe UI", 10, QFont.Bold))
301-
table.setItem(y, 1, item)
302-
303-
if not player.hidden_profile:
304-
matches = player.matches
305-
wr = player.winrate
306-
avg_dmg = player.avg_dmg
307-
308-
c = Purple() if matches > 20000 else Cyan() if matches > 14000 else LGreen() if matches > 9000 else \
309-
Yellow() if matches > 5000 else Orange() if matches > 2000 else Red()
310-
item = QTableWidgetItem(str(matches))
311-
item.setFont(QFont("Segoe UI", 12, QFont.Bold))
312-
item.setForeground(c)
313-
item.setTextAlignment(Qt.AlignCenter)
314-
table.setItem(y, 2, item)
315-
316-
c = Purple() if wr > 65 else Pink() if wr > 60 else Cyan() if wr > 56 else DGreen() if wr > 54 else \
317-
LGreen() if wr > 52 else Yellow() if wr > 49 else Orange() if wr > 47 else Red()
318-
item = QTableWidgetItem(str(wr))
319-
item.setFont(QFont("Segoe UI", 12, QFont.Bold))
320-
item.setForeground(c)
321-
item.setTextAlignment(Qt.AlignCenter)
322-
table.setItem(y, 3, item)
323-
324-
c = Pink() if avg_dmg > 48500 else Cyan() if avg_dmg > 38000 else LGreen() if avg_dmg > 33000 else \
325-
Yellow() if avg_dmg > 22000 else Orange() if avg_dmg > 16000 else Red()
326-
item = QTableWidgetItem(str(avg_dmg))
327-
item.setForeground(c)
328-
item.setTextAlignment(Qt.AlignCenter)
329-
item.setFont(QFont("Segoe UI", 12, QFont.Bold))
330-
table.setItem(y, 4, item)
331-
332-
# ship specific stats
333-
if player.ship_name != 'Error':
334-
item = QTableWidgetItem(str(player.matches_ship))
335-
item.setFont(QFont("Segoe UI", 12, QFont.Bold))
294+
for x in range(len(player.row)):
295+
size = 10 if x < 2 else 12
296+
font = QFont("Segoe UI", size, QFont.Bold) if x else QFont("Segoe UI", size)
297+
item = QTableWidgetItem(player.row[x])
298+
item.setFont(font)
299+
if player.colors[x]:
300+
item.setForeground(player.colors[x])
301+
if x > 1:
336302
item.setTextAlignment(Qt.AlignCenter)
337-
table.setItem(y, 5, item)
338-
339-
wr_ship = player.winrate_ship
340-
c = Purple() if wr_ship > 65 else Pink() if wr_ship > 60 else Cyan() if wr_ship > 56 else \
341-
DGreen() if wr_ship > 54 else LGreen() if wr_ship > 52 else Yellow() if wr_ship > 49 else \
342-
Orange() if wr_ship > 47 else Red()
343-
item = QTableWidgetItem(str(wr_ship))
344-
item.setFont(QFont("Segoe UI", 12, QFont.Bold))
345-
item.setForeground(c)
346-
item.setTextAlignment(Qt.AlignCenter)
347-
table.setItem(y, 6, item)
348-
else:
349-
table.setItem(y, 5, QTableWidgetItem('Error'))
350-
table.setItem(y, 6, QTableWidgetItem('Error'))
303+
table.setItem(y, x, item)
304+
x += 1
351305

352-
# table.resizeColumnsToContents()
353306
for y in range(tables[1], 12):
354307
for x in range(7):
355308
self.left_table.setItem(y, x, QTableWidgetItem(''))

potatoalert.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,16 @@
3737
from asyncqt import QEventLoop
3838
from utils.api import ApiWrapper
3939
from utils.api_errors import InvalidApplicationIdError
40+
from utils.stat_colors import color_avg_dmg, color_battles, color_winrate
4041
from version import __version__
4142

4243

4344
@dataclass()
4445
class Player:
45-
player_name: str
46-
ship_name: str
47-
team: int
4846
hidden_profile: bool
49-
matches: str
50-
winrate: str
51-
avg_dmg: str
52-
matches_ship: str
53-
winrate_ship: str
47+
team: int
48+
row: list
49+
colors: list
5450
class_ship: int # for sorting we keep track of these too
5551
tier_ship: int
5652
nation_ship: int
@@ -204,8 +200,16 @@ async def get_players(self, data: List[dict]) -> List[Player]:
204200
if battles_ship and 'wins' in ship_stats: # check that at least one match in ship
205201
winrate_ship = round(ship_stats['wins'] / battles_ship * 100, 1)
206202

207-
players.append(Player(player_name, ship_name, team, hidden_profile, battles, winrate, avg_dmg, battles_ship,
208-
winrate_ship, class_ship, tier_ship, nation_ship))
203+
row = [player_name, ship_name]
204+
colors = [None, None]
205+
if not hidden_profile:
206+
row.extend([str(battles), str(winrate), str(avg_dmg)])
207+
colors.extend([color_battles(battles), color_winrate(winrate), color_avg_dmg(avg_dmg)])
208+
if ship_name != 'Error':
209+
row.extend([str(battles_ship), str(winrate_ship)])
210+
colors.extend([None, color_winrate(winrate_ship)])
211+
p = Player(hidden_profile, team, row, colors, class_ship, tier_ship, nation_ship)
212+
players.append(p)
209213

210214
return sorted(players, key=lambda x: (x.class_ship, x.tier_ship, x.nation_ship), reverse=True)
211215

0 commit comments

Comments
 (0)