Skip to content

Commit 3b7ad0a

Browse files
committed
added history tracking
1 parent 75134b3 commit 3b7ad0a

File tree

1 file changed

+45
-8
lines changed

1 file changed

+45
-8
lines changed

goalScreener.py

+45-8
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
from PyQt5 import QtGui
1010
from PIL import Image, ImageDraw, ImageFont
1111
import traceback
12+
import yaml
13+
from datetime import datetime
1214

1315
if getattr(sys, 'frozen', False): # If the app is frozen (compiled with PyInstaller)
1416
basedir = sys._MEIPASS # Use the temp folder where PyInstaller unpacks the app
@@ -23,12 +25,35 @@ class WallpaperApp(QWidget):
2325
QUEST_LIMIT = 5
2426
MAX_STR = 32
2527
TRACKING_COLOR=(72, 149, 147)
28+
TRACKING_COLOR_INT= 7262512 #4740483
2629
selected_item = ''
2730
tracked_item = ''
2831
image_path =''
2932
FONT =os.path.join(basedir,"./assets/ComicMono.ttf")
3033
FONT_B = os.path.join(basedir,"./assets/ComicMono-Bold.ttf")
3134
JSON_PATH = os.path.join(basedir,"./assets/Quest.json")
35+
YAML_PATH = os.path.join(basedir,"./assets/history.yaml")
36+
37+
def addHistory(self):
38+
if not self.selected_item:
39+
QMessageBox.warning(self,"ERROR",f"no Quest was selected")
40+
return
41+
with open(self.YAML_PATH,'r') as f:
42+
data = yaml.safe_load(f) or {}
43+
item = ''
44+
if self.selected_item in self.mainQ:
45+
item = self.mainQ[self.selected_item]
46+
if self.selected_item in self.sideQ:
47+
item = self.sideQ[self.selected_item]
48+
quest = {'desription':f'{item}',
49+
'time':f'{datetime.now().strftime("%y-%m-%d %H:%M")}',
50+
}
51+
52+
data[f'{self.selected_item}'] = quest
53+
# print(data)
54+
with open(self.YAML_PATH,'w') as f:
55+
yaml.dump(data,f,default_flow_style=False)
56+
3257
def __init__(self):
3358
super().__init__()
3459
self.initUI()
@@ -90,7 +115,11 @@ def initUI(self):
90115
self.track_label = QLabel("Tracking: Nothing Right Now")
91116
self.track_btn = QPushButton("Track")
92117
self.track_btn.clicked.connect(self.trackTask)
93-
118+
119+
#achieved button
120+
self.achieve_btn = QPushButton("Achieved",self)
121+
self.achieve_btn.clicked.connect(self.addHistory)
122+
# remove button
94123
self.remove_btn = QPushButton("Remove", self)
95124
self.remove_btn.clicked.connect(self.removeTask)
96125

@@ -102,6 +131,7 @@ def initUI(self):
102131
bottom_layout.addWidget(self.goal_des)
103132
bottom_layout.addWidget(self.addTaskMain_btn)
104133
bottom_layout.addWidget(self.track_btn)
134+
bottom_layout.addWidget(self.achieve_btn)
105135
bottom_layout.addWidget(self.remove_btn)
106136

107137
# Add top and bottom sections to the main layout
@@ -165,7 +195,7 @@ def retreiveD(self):
165195
self.img_label.setPixmap(pixmap.scaled(200, 200))
166196
self.track_label.setText(f"Tracking: {self.tracked_item}")
167197
except Exception as e:
168-
print(f'Error:{e}')
198+
# print(f'Error:{e}')
169199

170200
def writeD(self):
171201
with open(self.JSON_PATH, "w") as file:
@@ -181,7 +211,7 @@ def add_task_main(self):
181211
if quest not in self.mainQ.keys():
182212
self.mainQ[quest] = des
183213
self.update_quest_list()
184-
print(self.mainQ)
214+
# print(self.mainQ)
185215
else:
186216
QMessageBox.warning(self, "Quest existing", "Please enter another Quest.")
187217
self.on_submit()
@@ -196,7 +226,7 @@ def add_task_side(self):
196226
if quest not in self.sideQ.keys():
197227
self.sideQ[quest] = des
198228
self.update_quest_list()
199-
print(self.sideQ)
229+
# print(self.sideQ)
200230
else:
201231
QMessageBox.warning(self, "Quest existing", "Please enter another Quest.")
202232
self.on_submit()
@@ -210,6 +240,11 @@ def update_quest_list(self):
210240
self.quest_list_widget.addItem(quest)
211241
for quest in self.sideQ.keys():
212242
self.quest_list_widget.addItem(quest)
243+
if self.quest_list_widget.item(0):
244+
# print(self.quest_list_widget.item(0).text())
245+
for i in range(self.quest_list_widget.count()):
246+
if self.quest_list_widget.item(i).text() == self.tracked_item:
247+
self.quest_list_widget.item(i).setBackground(QColor(self.TRACKING_COLOR_INT))
213248

214249
def on_quest_clicked(self, item):
215250
self.selected_item = item.text()
@@ -221,7 +256,9 @@ def on_quest_clicked(self, item):
221256
for i in range(self.quest_list_widget.count()):
222257
if self.quest_list_widget.item(i) == item:
223258
self.quest_list_widget.item(i).setBackground(QColor('blue'))
224-
else:
259+
elif self.quest_list_widget.item(i).text() == self.tracked_item:
260+
self.quest_list_widget.item(i).setBackground(QColor(self.TRACKING_COLOR_INT))
261+
else:
225262
self.quest_list_widget.item(i).setBackground(QColor('white'))
226263

227264
def upload_image(self):
@@ -277,7 +314,7 @@ def cut_at_space(text, max_len):
277314
# Image size
278315

279316

280-
print(W,H)
317+
# print(W,H)
281318
# quest limit
282319

283320
# Coordinates for main quests (left side)
@@ -374,7 +411,7 @@ def set_wallpaper_windows(self, image_path):
374411

375412
def set_wallpaper_linux(self, image_path):
376413
try:
377-
#print(f"gsettings set org.gnome.desktop.background picture-uri-dark {os.path.join(basedir,image_path)}")
414+
## print(f"gsettings set org.gnome.desktop.background picture-uri-dark {os.path.join(basedir,image_path)}")
378415
os.system(f"gsettings set org.gnome.desktop.background picture-uri {os.path.join(basedir,image_path)}")
379416
os.system(f"gsettings set org.gnome.desktop.background picture-uri-dark {os.path.join(basedir,image_path)}")
380417
QMessageBox.information(self, "Success", f"Wallpaper set successfully! {image_path}")
@@ -398,7 +435,7 @@ def on_submit(self):
398435
self.writeD()
399436
output_image = self.generate_image_with_text()
400437
if output_image:
401-
print(output_image)
438+
# print(output_image)
402439
self.set_wallpaper(output_image)
403440

404441

0 commit comments

Comments
 (0)