2 * UI->Qt->MainWindow : Quick Disk Utils.
3 * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
7 * Jan 24, 2014 : Moved from some files.
11 #include "mainwidget.h"
12 #include "commonclasses.h"
13 #include "qt_dialogs.h"
15 #include "agar_logger.h"
16 #include "menu_quickdisk.h"
18 #if defined(USE_QD1) || defined(USE_QD2)
19 void Object_Menu_Control::insert_Qd(void) {
20 //write_protect = false; // Right? On D88, May be writing entry exists.
21 emit sig_insert_Qd(drive);
23 void Object_Menu_Control::eject_Qd(void) {
24 write_protect = false;
25 emit sig_eject_Qd(drive);
27 void Object_Menu_Control::on_recent_quick_disk(void){
28 // write_protect = false; // Right? On D88, May be writing entry exists.
29 emit set_recent_quick_disk(drive, s_num);
31 void CSP_FileParams::_open_quick_disk(QString s){
32 // write_protect = false; // Right? On D88, May be writing entry exists.
33 emit do_open_quick_disk(getDrive(), s);
35 void Object_Menu_Control::write_protect_Qd(void) {
37 emit sig_write_protect_Qd(drive, write_protect);
39 void Object_Menu_Control::no_write_protect_Qd(void) {
40 write_protect = false;
41 emit sig_write_protect_Qd(drive, write_protect);
46 void Ui_MainWindow::CreateQuickDiskPulldownMenu(int drv)
50 void Ui_MainWindow::ConfigQuickDiskMenuSub(int drv)
56 void Ui_MainWindow::open_quick_disk_dialog(int drv)
59 QString ext = "*.mzt *.q20 *.qdf";
60 QString desc1 = "Quick DIsk";
65 dlg.setWindowTitle("Open Quick Disk");
67 desc2 = desc1 + " (" + ext.toLower() + " " + ext.toUpper() + ")";
68 //desc2 = desc1 + " (" + ext.toLower() + ")";
69 //desc1 = desc1 + " (" + ext.toUpper() + ")";
70 if(config.initial_quick_disk_dir != NULL) {
71 dirname = config.initial_quick_disk_dir;
75 dirname = df.currentPath();
76 strncpy(app, dirname.toLocal8Bit().constData(), _MAX_PATH);
77 dirname = get_parent_dir(app);
82 dlg.param->setDrive(drv);
83 dlg.setDirectory(dirname);
84 dlg.setNameFilters(filter);
85 QObject::connect(&dlg, SIGNAL(fileSelected(QString)),
86 dlg.param, SLOT(_open_quick_disk(QString)));
87 QObject::connect(dlg.param, SIGNAL(do_open_quick_disk(int, QString)),
88 this, SLOT(_open_quick_disk(int, QString)));
95 int Ui_MainWindow::write_protect_Qd(int drv, bool flag)
98 if((drv < 0) || (drv >= MAX_QD)) return -1;
99 emit sig_write_protect_quickdisk(drv, flag);
104 int Ui_MainWindow::set_recent_quick_disk(int drv, int num)
108 char path_shadow[_MAX_PATH];
110 if((num < 0) || (num >= MAX_HISTORY)) return -1;
111 s_path = QString::fromLocal8Bit(config.recent_quick_disk_path[drv][num]);
112 strncpy(path_shadow, s_path.toLocal8Bit().constData(), _MAX_PATH);
113 UPDATE_HISTORY(path_shadow, config.recent_quick_disk_path[drv], listQDs[drv]);
115 strncpy(path_shadow, s_path.toLocal8Bit().constData(), _MAX_PATH);
116 get_parent_dir(path_shadow);
117 strncpy(config.initial_quick_disk_dir, path_shadow, _MAX_PATH);
119 emit sig_close_quickdisk(drv);
120 emit sig_open_quickdisk(drv, s_path);
121 menu_QDs[drv]->do_update_histories(listQDs[drv]);
122 menu_QDs[drv]->do_set_initialize_directory(config.initial_quick_disk_dir);
123 //if(emu->get_quickdisk_protected(drv)) {
124 // menu_QDs[drv]->do_write_protect_media();
126 // menu_QDs[drv]->do_write_unprotect_media();
132 void Ui_MainWindow::_open_quick_disk(int drv, const QString fname)
134 char path_shadow[_MAX_PATH];
135 QString s_name = fname;
138 if(fname.length() <= 0) return;
139 strncpy(path_shadow, s_name.toLocal8Bit().constData(), _MAX_PATH);
141 UPDATE_HISTORY(path_shadow, config.recent_quick_disk_path[drv], listQDs[drv]);
143 strncpy(path_shadow, s_name.toLocal8Bit().constData(), _MAX_PATH);
144 get_parent_dir(path_shadow);
145 strncpy(config.initial_quick_disk_dir, path_shadow, _MAX_PATH);
147 emit sig_close_quickdisk(drv);
148 emit sig_open_quickdisk(drv, s_name);
149 menu_QDs[drv]->do_update_histories(listQDs[drv]);
150 menu_QDs[drv]->do_set_initialize_directory(config.initial_quick_disk_dir);
151 //if(emu->get_quickdisk_protected(drv)) {
152 // menu_QDs[drv]->do_write_protect_media();
154 // menu_QDs[drv]->do_write_unprotect_media();
159 void Ui_MainWindow::eject_Qd(int drv)
162 emit sig_close_quickdisk(drv);
166 void Ui_MainWindow::CreateQuickDiskMenu(int drv, int drv_base)
170 QString ext = "*.mzt *.q20 *.qdf";
171 QString desc1 = "Quick DIsk";
172 menu_QDs[drv] = new Menu_QDClass(emu, menubar, QString::fromUtf8("Obj_QuickDisk"), this, drv);
173 menu_QDs[drv]->create_pulldown_menu();
175 menu_QDs[drv]->do_clear_inner_media();
176 menu_QDs[drv]->do_add_media_extension(ext, desc1);
177 SETUP_HISTORY(config.recent_quick_disk_path[drv], listQDs[drv]);
178 menu_QDs[drv]->do_update_histories(listQDs[drv]);
179 menu_QDs[drv]->do_set_initialize_directory(config.initial_quick_disk_dir);
181 QString name = QString::fromUtf8("Quick Disk");
183 tmpv.setNum(drv_base);
185 menu_QDs[drv]->setTitle(name);
190 void Ui_MainWindow::retranslateQuickDiskMenu(int drv, int basedrv)
193 if((drv < 0) || (drv >= 2)) return;
194 QString drive_name = (QApplication::translate("MainWindow", "Quick Disk ", 0));
195 drive_name += QString::number(basedrv);
197 menu_QDs[drv]->retranslateUi();
198 menu_QDs[drv]->setTitle(QApplication::translate("MainWindow", drive_name.toUtf8().constData() , 0));
202 void Ui_MainWindow::ConfigQuickDiskMenu(void)
205 ConfigQuickDiskMenuSub(0);
208 ConfigQuickDiskMenuSub(1);