66import speedtest as st
77from datetime import datetime
88from speedtest_app import network_adapter_information
9- from speedtest_app .test_history import save_test_results , view_history , plot_history
10- from speedtest_app .gui import ResultsFrame , SettingsWindow , create_menu , show_about_dialog
9+ from speedtest_app .test_history import save_test_results
10+ from speedtest_app .gui import (
11+ ResultsFrame ,
12+ SettingsWindow ,
13+ create_menu ,
14+ show_about_dialog
15+ )
1116from speedtest_app .utils import (
1217 get_app_version ,
1318 format_speed ,
1419 load_settings ,
15- save_settings ,
16- ensure_user_data_dir
20+ save_settings
1721)
1822
1923
2024def setup_logging ():
2125 """Настраивает систему логирования."""
22- log_dir = os .path .join (os .path .expanduser ("~" ), "Documents" , "SpeedTest_Logs" )
26+ log_dir = os .path .join (
27+ os .path .expanduser ("~" ),
28+ "Documents" ,
29+ "SpeedTest_Logs"
30+ )
2331 os .makedirs (log_dir , exist_ok = True )
2432 log_file = os .path .join (log_dir , "speedtest_log.log" )
2533
@@ -73,22 +81,40 @@ def setup_gui(self):
7381 mode = 'determinate'
7482 )
7583
84+ # Основная рамка для кнопок
7685 self .button_frame = tk .Frame (self .root )
7786 self .button_frame .pack (pady = 20 )
7887
88+ # Кнопка запуска теста
7989 self .start_button = ttk .Button (
8090 self .button_frame ,
8191 text = "Start Speed Test" ,
8292 command = self .start_speedtest
8393 )
84- self .start_button .pack ()
94+ self .start_button .pack (pady = ( 0 , 5 ) )
8595
96+ # Кнопка повтора теста (изначально скрыта)
8697 self .repeat_button = ttk .Button (
8798 self .button_frame ,
8899 text = "Repeat Speed Test" ,
89100 command = self .repeat_speedtest
90101 )
91102
103+ # Кнопки истории и графика (отображаются сразу)
104+ self .history_button = ttk .Button (
105+ self .button_frame ,
106+ text = "Посмотреть историю" ,
107+ command = self .show_history
108+ )
109+ self .history_button .pack (pady = 5 )
110+
111+ self .plot_button = ttk .Button (
112+ self .button_frame ,
113+ text = "Посмотреть график" ,
114+ command = self .show_plot
115+ )
116+ self .plot_button .pack (pady = 5 )
117+
92118 def update_network_info (self ):
93119 """Обновляет информацию о сетевом адаптере."""
94120 adapter_info = network_adapter_information .get_active_adapter_info ()
@@ -130,6 +156,7 @@ def start_speedtest(self):
130156 self .progress_bar ["value" ] = 0
131157
132158 self .start_button .config (state = "disabled" )
159+ self .repeat_button .pack_forget ()
133160
134161 self .test_thread = threading .Thread (target = self ._run_speedtest )
135162 self .test_thread .start ()
@@ -180,10 +207,12 @@ def _update_results(self, download, upload, ping):
180207 timestamp
181208 )
182209
210+ # Показываем кнопку повтора после завершения теста
183211 self .repeat_button .pack (pady = (5 , 0 ))
184212
185213 if self .settings .get ("auto_save_results" , True ):
186214 save_test_results (download , upload , ping )
215+ logger .info ("Test results saved to Downloads directory" )
187216
188217 def _show_error (self , error_message ):
189218 """Показывает сообщение об ошибке."""
@@ -194,6 +223,18 @@ def _cleanup(self):
194223 self .progress_frame .pack_forget ()
195224 self .start_button .config (state = "normal" )
196225
226+ def show_history (self ):
227+ """Открывает окно истории тестов."""
228+ from speedtest_app .test_history import get_history_file_path , view_history
229+ history_path = get_history_file_path ()
230+ view_history (self .root , history_path )
231+
232+ def show_plot (self ):
233+ """Открывает окно графика истории тестов."""
234+ from speedtest_app .test_history import get_history_file_path , plot_history
235+ history_path = get_history_file_path ()
236+ plot_history (self .root , history_path )
237+
197238
198239def main ():
199240 """Основная точка входа в приложение."""
0 commit comments