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_base.h"
12 #include "commonclasses.h"
13 #include "qt_dialogs.h"
14 #include "agar_logger.h"
15 #include "menu_quickdisk.h"
17 void Object_Menu_Control::insert_Qd(void) {
18 //write_protect = false; // Right? On D88, May be writing entry exists.
19 emit sig_insert_Qd(drive);
21 void Object_Menu_Control::eject_Qd(void) {
22 write_protect = false;
23 emit sig_eject_Qd(drive);
25 void Object_Menu_Control::on_recent_quick_disk(void){
26 // write_protect = false; // Right? On D88, May be writing entry exists.
27 emit set_recent_quick_disk(drive, s_num);
30 void CSP_FileParams::_open_quick_disk(QString s){
31 // write_protect = false; // Right? On D88, May be writing entry exists.
32 emit do_open_quick_disk(getDrive(), s);
34 void Object_Menu_Control::write_protect_Qd(void) {
36 emit sig_write_protect_Qd(drive, write_protect);
38 void Object_Menu_Control::no_write_protect_Qd(void) {
39 write_protect = false;
40 emit sig_write_protect_Qd(drive, write_protect);
43 void Ui_MainWindowBase::CreateQuickDiskPulldownMenu(int drv)
47 void Ui_MainWindowBase::ConfigQuickDiskMenuSub(int drv)
53 void Ui_MainWindowBase::open_quick_disk_dialog(int drv)
55 QString ext = "*.mzt *.q20 *.qdf";
56 QString desc1 = "Quick DIsk";
61 dlg.setWindowTitle("Open Quick Disk");
63 desc2 = desc1 + " (" + ext.toLower() + " " + ext.toUpper() + ")";
64 //desc2 = desc1 + " (" + ext.toLower() + ")";
65 //desc1 = desc1 + " (" + ext.toUpper() + ")";
66 if(using_flags->get_config_ptr()->initial_quick_disk_dir != NULL) {
67 dirname = using_flags->get_config_ptr()->initial_quick_disk_dir;
71 dirname = df.currentPath();
72 strncpy(app, dirname.toLocal8Bit().constData(), _MAX_PATH);
73 dirname = get_parent_dir(app);
78 dlg.param->setDrive(drv);
79 dlg.setDirectory(dirname);
80 dlg.setNameFilters(filter);
81 QObject::connect(&dlg, SIGNAL(fileSelected(QString)),
82 dlg.param, SLOT(_open_quick_disk(QString)));
83 QObject::connect(dlg.param, SIGNAL(do_open_quick_disk(int, QString)),
84 this, SLOT(_open_quick_disk(int, QString)));
90 int Ui_MainWindowBase::write_protect_Qd(int drv, bool flag)
92 if((drv < 0) || (drv >= using_flags->get_max_qd())) return -1;
93 emit sig_write_protect_quickdisk(drv, flag);
97 int Ui_MainWindowBase::set_recent_quick_disk(int drv, int num)
100 char path_shadow[_MAX_PATH];
102 if((num < 0) || (num >= MAX_HISTORY)) return -1;
103 s_path = QString::fromLocal8Bit(using_flags->get_config_ptr()->recent_quick_disk_path[drv][num]);
104 strncpy(path_shadow, s_path.toLocal8Bit().constData(), _MAX_PATH);
105 UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_quick_disk_path[drv], listQDs[drv]);
107 strncpy(path_shadow, s_path.toLocal8Bit().constData(), _MAX_PATH);
108 get_parent_dir(path_shadow);
109 strncpy(using_flags->get_config_ptr()->initial_quick_disk_dir, path_shadow, _MAX_PATH);
111 emit sig_close_quickdisk(drv);
112 emit sig_open_quickdisk(drv, s_path);
113 menu_QDs[drv]->do_update_histories(listQDs[drv]);
114 menu_QDs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_quick_disk_dir);
115 //if(emu->get_quickdisk_protected(drv)) {
116 // menu_QDs[drv]->do_write_protect_media();
118 // menu_QDs[drv]->do_write_unprotect_media();
123 void Ui_MainWindowBase::_open_quick_disk(int drv, const QString fname)
125 char path_shadow[_MAX_PATH];
126 QString s_name = fname;
128 if(fname.length() <= 0) return;
129 strncpy(path_shadow, s_name.toLocal8Bit().constData(), _MAX_PATH);
131 UPDATE_HISTORY(path_shadow, using_flags->get_config_ptr()->recent_quick_disk_path[drv], listQDs[drv]);
133 strncpy(path_shadow, s_name.toLocal8Bit().constData(), _MAX_PATH);
134 get_parent_dir(path_shadow);
135 strncpy(using_flags->get_config_ptr()->initial_quick_disk_dir, path_shadow, _MAX_PATH);
137 emit sig_close_quickdisk(drv);
138 emit sig_open_quickdisk(drv, s_name);
139 menu_QDs[drv]->do_update_histories(listQDs[drv]);
140 menu_QDs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_quick_disk_dir);
141 //if(emu->get_quickdisk_protected(drv)) {
142 // menu_QDs[drv]->do_write_protect_media();
144 // menu_QDs[drv]->do_write_unprotect_media();
148 void Ui_MainWindowBase::eject_Qd(int drv)
150 emit sig_close_quickdisk(drv);
153 void Ui_MainWindowBase::CreateQuickDiskMenu(int drv, int drv_base)
156 QString ext = "*.mzt *.q20 *.qdf";
157 QString desc1 = "Quick DIsk";
158 menu_QDs[drv] = new Menu_QDClass(emu, menubar, QString::fromUtf8("Obj_QuickDisk"), using_flags, this, drv);
159 menu_QDs[drv]->create_pulldown_menu();
161 menu_QDs[drv]->do_clear_inner_media();
162 menu_QDs[drv]->do_add_media_extension(ext, desc1);
163 SETUP_HISTORY(using_flags->get_config_ptr()->recent_quick_disk_path[drv], listQDs[drv]);
164 menu_QDs[drv]->do_update_histories(listQDs[drv]);
165 menu_QDs[drv]->do_set_initialize_directory(using_flags->get_config_ptr()->initial_quick_disk_dir);
167 QString name = QString::fromUtf8("Quick Disk");
169 tmpv.setNum(drv_base);
171 menu_QDs[drv]->setTitle(name);
175 void Ui_MainWindowBase::retranslateQuickDiskMenu(int drv, int basedrv)
177 if((drv < 0) || (drv >= using_flags->get_max_qd())) return;
178 QString drive_name = (QApplication::translate("MainWindow", "Quick Disk ", 0));
179 drive_name += QString::number(basedrv);
181 menu_QDs[drv]->retranslateUi();
182 menu_QDs[drv]->setTitle(QApplication::translate("MainWindow", drive_name.toUtf8().constData() , 0));
185 void Ui_MainWindowBase::ConfigQuickDiskMenu(void)
187 for(int i = 0; i < using_flags->get_max_qd(); i++) {
188 ConfigQuickDiskMenuSub(i);