Skip to content

Commit cc22a99

Browse files
authored
Add focus and winsounds to messageboxes. Add missing messageboxes. (#58)
* Add focus and winsounds to messageboxes. Add missing messageboxes. * Add missing focus to CTKMessageboxes * Use try in import winsound, to prevent errors on other platforms
1 parent ef68d34 commit cc22a99

File tree

7 files changed

+137
-72
lines changed

7 files changed

+137
-72
lines changed

frames/AnydeskFrame.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from CTkMessagebox import CTkMessagebox
99
from PIL import Image
1010
from utils.event_utils import myEvent
11+
from utils.sound_utils import play_message_beep
1112

1213
import customtkinter
1314

@@ -243,7 +244,8 @@ def fetch_logs_button_callback(self):
243244
for x in threads:
244245
x.start()
245246
else:
246-
CTkMessagebox(title=_("Select option"), message=_("Please select at least one option."))
247+
play_message_beep()
248+
CTkMessagebox(title=_("Select option"), message=_("Please select at least one option."), option_focus=1)
247249

248250
def print_logs_to_textbox(self, log_filename_with_path: str):
249251
"""A function that calls get_anydesk_logs function and prints output to textbox
@@ -326,7 +328,9 @@ def on_finished_searching(self):
326328
self.checkbox_fetch_programdata_logs,
327329
self.checkbox_search_for_logs_in_location
328330
], state="normal")
331+
329332
global_state.refresh_reports_list = True
333+
play_message_beep()
330334

331335
@staticmethod
332336
def turn_off_switches(switches_list: list[tkinter.BooleanVar]):
@@ -362,4 +366,5 @@ def open_report_folder():
362366
try:
363367
os.startfile(report_folder_path)
364368
except FileNotFoundError:
365-
print(_("Report folder not found!"))
369+
play_message_beep()
370+
CTkMessagebox(title=_("Report folder not found!"), message=_("Report folder not found!"), option_focus=1)

frames/BrowseReportsFrame.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import csv
22
import os
3-
from CTkMessagebox import CTkMessagebox
43
import customtkinter
4+
from CTkMessagebox import CTkMessagebox
55
from PIL import Image
66

77
from utils.file_operations import split_computer_datetime_dirname, get_reports_folder_list
88
from utils.widget_utils import add_widgets
99
from utils.locale_utils import _
10+
from utils.sound_utils import play_message_beep
1011

1112

1213
class BrowseReportsFrame(customtkinter.CTkScrollableFrame):
@@ -27,6 +28,7 @@ class Report_Frame(customtkinter.CTkFrame):
2728
It also shows the number of files and IP addresses found in the report.
2829
Button located in frame opens the report folder.
2930
"""
31+
master: BrowseReportsFrame
3032

3133
def __init__(self, master, **kwargs):
3234
super().__init__(master)
@@ -75,6 +77,9 @@ def __init__(self, master, **kwargs):
7577

7678
class Report_Button(customtkinter.CTkButton):
7779
"""A class representing a button that opens the report folder."""
80+
master: Report_Frame
81+
82+
7883

7984
def __init__(self, master, **kwargs):
8085
super().__init__(master)
@@ -88,11 +93,17 @@ def __init__(self, master, **kwargs):
8893
self.grid(row=1, column=0, columnspan=1, sticky="ew", padx=10, pady=10)
8994

9095
def open_report(self):
91-
os.startfile(self.report_path)
96+
try:
97+
os.startfile(self.report_path)
98+
except Exception as e:
99+
play_message_beep()
100+
CTkMessagebox(title=_('Error'), message=_('Could not open report folder.'), icon="warning", option_focus=1)
101+
refresh(self.master.master)
92102

93103

94104
class Delete_Report_Button(customtkinter.CTkButton):
95105
"""A class representing a button that deletes the report folder."""
106+
master: Report_Frame
96107

97108
def __init__(self, master, **kwargs):
98109
super().__init__(master)
@@ -110,7 +121,8 @@ def confirm_delete(self):
110121
# get yes/no answers
111122
msg = CTkMessagebox(title=_('Delete Report' + "?"),
112123
message=_('Do you really want to delete the selected report?'),
113-
icon="warning", option_1=_('Cancel'), option_2=_('Delete'), cancel_button="cross")
124+
icon="warning", option_1=_('Cancel'), option_2=_('Delete'), cancel_button="cross",
125+
option_focus=2)
114126
msg.button_2.configure(text_color="#eee", fg_color=("#ef4444", "#b91c1c"),
115127
hover_color=("#dc2626", "#991b1b"))
116128
response = msg.get()
@@ -122,7 +134,11 @@ def confirm_delete(self):
122134

123135
def delete_report(self):
124136
import shutil
125-
shutil.rmtree(self.report_path)
137+
try:
138+
shutil.rmtree(self.report_path)
139+
except Exception as e:
140+
play_message_beep()
141+
CTkMessagebox(title=_('Error'), message=_('Could not delete report folder.'), icon="warning", option_focus=1)
126142
# refresh browse reports frame
127143
refresh(self.master.master)
128144

locale/Main.pot

Lines changed: 44 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
msgid ""
77
msgstr ""
88
"Project-Id-Version: AnyGrabber\n"
9-
"POT-Creation-Date: 2023-07-18 14:09+0200\n"
9+
"POT-Creation-Date: 2023-07-19 22:18+0200\n"
1010
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1111
"Last-Translator: Krzysztof Pañtak, [email protected]\n"
1212
"Language-Team: Krzysztof Pañtak, [email protected]\n"
1313
"MIME-Version: 1.0\n"
1414
"Content-Type: text/plain; charset=cp1250\n"
1515
"Content-Transfer-Encoding: 8bit\n"
1616
"Generated-By: pygettext.py 1.5\n"
17-
"X-Generator: Poedit 3.2.2\n"
17+
"X-Generator: Poedit 3.3.2\n"
1818
"X-Poedit-Basepath: ..\n"
1919
"X-Poedit-KeywordsList: _(\";{_(\";{_(\"*\")}\n"
2020
"X-Poedit-SearchPath-0: frames/HomeFrame.py\n"
@@ -23,131 +23,143 @@ msgstr ""
2323
"X-Poedit-SearchPath-3: frames\n"
2424
"X-Poedit-SearchPath-4: utils\n"
2525

26-
#: frames/AnydeskFrame.py:73
26+
#: frames/AnydeskFrame.py:74
2727
msgid "Choose where to search for logs:"
2828
msgstr ""
2929

30-
#: frames/AnydeskFrame.py:102
30+
#: frames/AnydeskFrame.py:103
3131
msgid "Custom location"
3232
msgstr ""
3333

34-
#: frames/AnydeskFrame.py:117 frames/AnydeskFrame.py:316
34+
#: frames/AnydeskFrame.py:118 frames/AnydeskFrame.py:316
3535
msgid "Fetch logs"
3636
msgstr ""
3737

38-
#: frames/AnydeskFrame.py:131
38+
#: frames/AnydeskFrame.py:132
3939
msgid "Open report"
4040
msgstr ""
4141

42-
#: frames/AnydeskFrame.py:145
42+
#: frames/AnydeskFrame.py:146
4343
msgid "Searching for files in"
4444
msgstr ""
4545

46-
#: frames/AnydeskFrame.py:146
46+
#: frames/AnydeskFrame.py:147
4747
msgid "it may take a while"
4848
msgstr ""
4949

50-
#: frames/AnydeskFrame.py:173 frames/AnydeskFrame.py:175
50+
#: frames/AnydeskFrame.py:174 frames/AnydeskFrame.py:176
5151
msgid "No files were found in"
5252
msgstr ""
5353

5454
#: frames/AnydeskFrame.py:232
5555
msgid "Stop fetching"
5656
msgstr ""
5757

58-
#: frames/AnydeskFrame.py:247
58+
#: frames/AnydeskFrame.py:248
5959
msgid "Select option"
6060
msgstr ""
6161

62-
#: frames/AnydeskFrame.py:247
62+
#: frames/AnydeskFrame.py:248
6363
msgid "Please select at least one option."
6464
msgstr ""
6565

66-
#: frames/AnydeskFrame.py:260
66+
#: frames/AnydeskFrame.py:261
6767
msgid "Fetching logs from"
6868
msgstr ""
6969

70-
#: frames/AnydeskFrame.py:262
70+
#: frames/AnydeskFrame.py:263
7171
msgid "No IP logs found inside file!"
7272
msgstr ""
7373

74-
#: frames/AnydeskFrame.py:268
74+
#: frames/AnydeskFrame.py:269
7575
msgid "Logs not found in"
7676
msgstr ""
7777

78-
#: frames/AnydeskFrame.py:296
78+
#: frames/AnydeskFrame.py:322
7979
msgid "Search stopped"
8080
msgstr ""
8181

82-
#: frames/AnydeskFrame.py:321
82+
#: frames/AnydeskFrame.py:324
8383
msgid "Searching for files finished"
8484
msgstr ""
8585

86-
#: frames/AnydeskFrame.py:365
86+
#: frames/AnydeskFrame.py:371
8787
msgid "Report folder not found!"
8888
msgstr ""
8989

90-
#: frames/BrowseReportsFrame.py:62
90+
#: frames/BrowseReportsFrame.py:64
9191
msgid "Files: "
9292
msgstr ""
9393

94-
#: frames/BrowseReportsFrame.py:63
94+
#: frames/BrowseReportsFrame.py:65
9595
msgid "IP Addresses: "
9696
msgstr ""
9797

98-
#: frames/BrowseReportsFrame.py:85
98+
#: frames/BrowseReportsFrame.py:87
9999
msgid "Open Report folder"
100100
msgstr ""
101101

102-
#: frames/BrowseReportsFrame.py:103
102+
#: frames/BrowseReportsFrame.py:97 frames/BrowseReportsFrame.py:137
103+
msgid "Error"
104+
msgstr ""
105+
106+
#: frames/BrowseReportsFrame.py:97
107+
msgid "Could not open report folder."
108+
msgstr ""
109+
110+
#: frames/BrowseReportsFrame.py:110
103111
msgid "Delete Report"
104112
msgstr ""
105113

106-
#: frames/BrowseReportsFrame.py:111
114+
#: frames/BrowseReportsFrame.py:118
107115
msgid "Delete Report?"
108116
msgstr ""
109117

110-
#: frames/BrowseReportsFrame.py:112
118+
#: frames/BrowseReportsFrame.py:119
111119
msgid "Do you really want to delete the selected report?"
112120
msgstr ""
113121

114-
#: frames/BrowseReportsFrame.py:113
122+
#: frames/BrowseReportsFrame.py:120
115123
msgid "Cancel"
116124
msgstr ""
117125

118-
#: frames/BrowseReportsFrame.py:113 frames/BrowseReportsFrame.py:118
126+
#: frames/BrowseReportsFrame.py:120 frames/BrowseReportsFrame.py:126
119127
msgid "Delete"
120128
msgstr ""
121129

122-
#: frames/BrowseReportsFrame.py:149
130+
#: frames/BrowseReportsFrame.py:137
131+
msgid "Could not delete report folder."
132+
msgstr ""
133+
134+
#: frames/BrowseReportsFrame.py:161
123135
msgid "Reports List"
124136
msgstr ""
125137

126138
#: frames/HomeFrame.py:27
127139
msgid "welcome screen\n"
128140
msgstr ""
129141

130-
#: main.py:41
142+
#: main.py:43
131143
msgid "Restart required"
132144
msgstr ""
133145

134-
#: main.py:41
146+
#: main.py:43
135147
msgid "Please restart the application to apply changes."
136148
msgstr ""
137149

138-
#: main.py:94
150+
#: main.py:97
139151
msgid "Home"
140152
msgstr ""
141153

142-
#: main.py:109
154+
#: main.py:112
143155
msgid "Browse Reports"
144156
msgstr ""
145157

146-
#: main.py:117
158+
#: main.py:120
147159
msgid "Theme"
148160
msgstr ""
149161

150-
#: main.py:129
162+
#: main.py:132
151163
msgid "Language"
152164
msgstr ""
153165

locale/pl-PL/LC_MESSAGES/Main.mo

222 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)