OSDN Git Service

[UI][Qt] Not liking config, using_flags directly.
[csp-qt/common_source_project-fm7.git] / source / src / qt / gui / util_fd.cpp
1 /*
2  * UI->Qt->MainWindow : FDD Utils.
3  * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
4  * License: GPLv2
5  *
6  * History:
7  * Jan 24, 2014 : Moved from some files.
8  */
9
10
11 #include "mainwidget_base.h"
12 #include "commonclasses.h"
13 #include "menu_disk.h"
14
15 #include "qt_dialogs.h"
16 #include "agar_logger.h"
17
18 #include "menu_flags.h"
19
20 //extern USING_FLAGS *using_flags;
21 //extern class EMU *emu;
22
23 void Object_Menu_Control::insert_fd(void) {
24         emit sig_insert_fd(getDrive());
25 }
26 void Object_Menu_Control::eject_fd(void) {
27         write_protect = false;
28         emit sig_eject_fd(getDrive());
29 }
30 void Object_Menu_Control::on_d88_slot(void) {
31         emit set_d88_slot(drive, s_num);
32 }
33 void Object_Menu_Control::on_recent_disk(void){
34   //   write_protect = false; // Right? On D88, May be writing entry  exists. 
35         emit set_recent_disk(drive, s_num);
36 }
37 void Object_Menu_Control::write_protect_fd(void) {
38         write_protect = true;
39         emit sig_write_protect_fd(drive, write_protect);
40 }
41 void Object_Menu_Control::no_write_protect_fd(void) {
42         write_protect = false;
43         emit sig_write_protect_fd(drive, write_protect);
44 }
45
46 void Object_Menu_Control::do_set_ignore_crc_error(bool flag)
47 {
48         using_flags->get_config_ptr()->ignore_disk_crc[drive] = flag;
49         emit sig_emu_update_config();
50 }
51
52 void Object_Menu_Control::do_set_correct_disk_timing(bool flag)
53 {
54         using_flags->get_config_ptr()->correct_disk_timing[drive] = flag;
55         emit sig_emu_update_config();
56 }
57
58 int Ui_MainWindowBase::write_protect_fd(int drv, bool flag)
59 {
60         if((drv < 0) || (drv >= using_flags->get_max_drive())) return -1;
61         emit sig_write_protect_disk(drv, flag);
62         return 0;
63 }
64   
65 int Ui_MainWindowBase::set_d88_slot(int drive, int num)
66 {
67         return 0;
68 }
69
70 void Ui_MainWindowBase::do_update_recent_disk(int drv)
71 {
72 }
73
74
75 int Ui_MainWindowBase::set_recent_disk(int drv, int num) 
76 {
77         return 0;
78 }
79
80 void Ui_MainWindowBase::_open_disk(int drv, const QString fname)
81 {
82 }
83
84 void Ui_MainWindowBase::eject_fd(int drv) 
85 {
86         int i;
87         emit sig_close_disk(drv);
88         menu_fds[drv]->do_clear_inner_media();
89 }
90
91 // Common Routine
92
93 void Ui_MainWindowBase::CreateFloppyMenu(int drv, int drv_base)
94 {
95         {
96                 QString ext = "*.d88 *.d77 *.1dd *.td0 *.imd *.dsk *.fdi *.hdm *.tfd *.xdf *.2d *.sf7 *.img *.ima *.vfd";
97                 QString desc1 = "Floppy Disk";
98                 menu_fds[drv] = new Menu_FDClass(emu, menubar, QString::fromUtf8("Obj_Floppy"), using_flags, this, drv);
99                 menu_fds[drv]->create_pulldown_menu();
100                 
101                 menu_fds[drv]->do_clear_inner_media();
102                 menu_fds[drv]->do_add_media_extension(ext, desc1);
103                 SETUP_HISTORY(using_flags->get_config_ptr()->recent_floppy_disk_path[drv], listFDs[drv]);
104                 menu_fds[drv]->do_update_histories(listFDs[drv]);
105                 menu_fds[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_floppy_disk_dir);
106                 listD88[drv].clear();
107
108                 QString name = QString::fromUtf8("FD");
109                 QString tmpv;
110                 tmpv.setNum(drv_base);
111                 name.append(tmpv);
112                 menu_fds[drv]->setTitle(name);
113         }
114 }
115
116 void Ui_MainWindowBase::CreateFloppyPulldownMenu(int drv)
117 {
118 }
119
120 void Ui_MainWindowBase::ConfigFloppyMenuSub(int drv)
121 {
122 }
123
124 void Ui_MainWindowBase::retranslateFloppyMenu(int drv, int basedrv)
125 {
126         QString drive_name = (QApplication::translate("MainWindow", "Floppy ", 0));
127         drive_name += QString::number(basedrv);
128   
129         if((drv < 0) || (drv >= using_flags->get_max_drive())) return;
130         menu_fds[drv]->setTitle(QApplication::translate("MainWindow", drive_name.toUtf8().constData() , 0));
131         menu_fds[drv]->retranslateUi();
132 }
133
134 void Ui_MainWindowBase::ConfigFloppyMenu(void)
135 {
136         for(int i = 0; i < using_flags->get_max_drive(); i++) {
137                 ConfigFloppyMenuSub(i);
138         }
139 }