2424#include " ../xemu-notifications.h"
2525#include " snapshot-manager.hh"
2626
27- #define MAX_RECENT_DISCS 15
27+ #define MAX_RECENT_DISCS 11
2828
2929void ActionEjectDisc (void )
3030{
@@ -90,8 +90,8 @@ void ActionLoadDiscFile(const char *file_path)
9090 g_config.general .recent .discs_count ++;
9191 }
9292
93- for (int i = g_config.general .recent .discs_count - 1 ; i > 0 ; i --) {
94- g_config.general .recent .discs [i] = g_config.general .recent .discs [i -1 ];
93+ for (int i = g_config.general .recent .discs_count - 1 ; j > 0 ; j --) {
94+ g_config.general .recent .discs [i] = g_config.general .recent .discs [j -1 ];
9595 }
9696 g_config.general .recent .discs [0 ] = g_strdup (file_path);
9797 }
@@ -152,46 +152,6 @@ void ActionLoadSnapshotChecked(const char *name)
152152 g_snapshot_mgr.LoadSnapshotChecked (name);
153153}
154154
155- void ActionLoadDiscFromRecent (unsigned int index)
156- {
157- g_assert (index < g_config.general .recent .discs_count );
158- if (index >= g_config.general .recent .discs_count ) return ;
159-
160- const char *file_path = g_config.general .recent .discs [index];
161- if (!file_path || !file_path[0 ]) return ;
162-
163- if (qemu_access (file_path, F_OK) == -1 ) {
164- g_free ((void *)g_config.general .recent .discs [index]);
165- for (int j = index; j < g_config.general .recent .discs_count - 1 ; j++) {
166- g_config.general .recent .discs [j] = g_config.general .recent .discs [j + 1 ];
167- }
168- g_config.general .recent .discs_count --;
169- if (g_config.general .recent .discs_count == 0 ) {
170- g_free (g_config.general .recent .discs );
171- g_config.general .recent .discs = NULL ;
172- }
173- return ;
174- }
175-
176- ActionLoadDiscFile (file_path);
177- }
178-
179- void ActionRemoveDiscFromRecent (unsigned int index)
180- {
181- g_assert (index < g_config.general .recent .discs_count );
182- if (index >= g_config.general .recent .discs_count ) return ;
183-
184- g_free ((void *)g_config.general .recent .discs [index]);
185- for (int j = index; j < g_config.general .recent .discs_count - 1 ; j++) {
186- g_config.general .recent .discs [j] = g_config.general .recent .discs [j + 1 ];
187- }
188- g_config.general .recent .discs_count --;
189- if (g_config.general .recent .discs_count == 0 ) {
190- g_free (g_config.general .recent .discs );
191- g_config.general .recent .discs = NULL ;
192- }
193- }
194-
195155void ActionClearDiscRecent (void )
196156{
197157 for (int i = 0 ; i < g_config.general .recent .discs_count ; i++) {
@@ -201,35 +161,3 @@ void ActionClearDiscRecent(void)
201161 g_config.general .recent .discs = NULL ;
202162 g_config.general .recent .discs_count = 0 ;
203163}
204-
205- void ActionClearMissingRecentDiscs (void )
206- {
207- int valid_count = 0 ;
208- for (int i = 0 ; i < g_config.general .recent .discs_count ; i++) {
209- const char *disc_path = g_config.general .recent .discs [i];
210- if (!disc_path) continue ;
211- if (qemu_access (disc_path, F_OK) != -1 ) {
212- valid_count++;
213- }
214- }
215-
216- const char **valid_discs = NULL ;
217- if (valid_count > 0 ) {
218- valid_discs = (const char **)g_new0 (const char *, valid_count);
219-
220- int valid_index = 0 ;
221- for (int i = 0 ; i < g_config.general .recent .discs_count ; i++) {
222- const char *disc_path = g_config.general .recent .discs [i];
223- if (!disc_path) continue ;
224- if (qemu_access (disc_path, F_OK) != -1 ) {
225- valid_discs[valid_index++] = disc_path;
226- } else {
227- g_free ((void *)disc_path);
228- }
229- }
230- }
231-
232- g_free (g_config.general .recent .discs );
233- g_config.general .recent .discs = valid_discs;
234- g_config.general .recent .discs_count = valid_count;
235- }
0 commit comments