2 * UI->Qt->MainWindow : Binary 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"
16 #include "menu_binary.h"
18 void Object_Menu_Control::on_recent_binary_load(void){
19 // write_protect = false; // Right? On D88, May be writing entry exists.
20 emit set_recent_binary_load(drive, s_num);
22 void Object_Menu_Control::on_recent_binary_save(void){
23 // write_protect = false; // Right? On D88, May be writing entry exists.
24 emit set_recent_binary_save(drive, s_num);
27 void Object_Menu_Control::_open_binary(QString s){
28 bool load = this->isPlay();
29 int d = this->getDrive();
30 emit sig_open_binary_file(d, s, load);
32 void Object_Menu_Control::insert_binary_load(void) {
33 emit sig_open_binary(getDrive(), true);
35 void Object_Menu_Control::insert_binary_save(void) {
36 emit sig_open_binary(getDrive(), false);
39 int Ui_MainWindowBase::set_recent_binary_load(int drv, int num)
43 char path_shadow[PATH_MAX];
46 if((num < 0) || (num >= MAX_HISTORY)) return -1;
48 s_path = QString::fromLocal8Bit(config.recent_binary_path[drv][num]);
49 strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
50 UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
51 strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
53 get_parent_dir(path_shadow);
54 strcpy(config.initial_binary_dir, path_shadow);
55 //strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
57 emit sig_load_binary(drv, s_path);
58 menu_BINs[drv]->do_update_histories(listBINs[drv]);
59 menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
63 int Ui_MainWindowBase::set_recent_binary_save(int drv, int num)
66 char path_shadow[PATH_MAX];
69 if((num < 0) || (num >= MAX_HISTORY)) return -1;
71 s_path = QString::fromLocal8Bit(config.recent_binary_path[drv][num]);
72 strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
73 UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
74 strncpy(path_shadow, s_path.toLocal8Bit().constData(), PATH_MAX);
76 get_parent_dir(path_shadow);
77 strcpy(config.initial_binary_dir, path_shadow);
78 //strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
80 emit sig_save_binary(drv, s_path);
81 menu_BINs[drv]->do_update_histories(listBINs[drv]);
82 menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
87 void Ui_MainWindowBase::_open_binary_load(int drv, const QString fname)
89 char path_shadow[PATH_MAX];
91 if(fname.length() <= 0) return;
93 strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
94 UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
95 get_parent_dir(path_shadow);
96 strcpy(config.initial_binary_dir, path_shadow);
98 emit sig_load_binary(drv, fname);
100 menu_BINs[drv]->do_update_histories(listBINs[drv]);
101 menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
104 void Ui_MainWindowBase::_open_binary_save(int drv, const QString fname)
106 char path_shadow[PATH_MAX];
108 if(fname.length() <= 0) return;
110 strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX);
111 UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
112 get_parent_dir(path_shadow);
113 strcpy(config.initial_binary_dir, path_shadow);
115 emit sig_save_binary(drv, fname);
117 menu_BINs[drv]->do_update_histories(listBINs[drv]);
118 menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
122 void Ui_MainWindowBase::CreateBinaryMenu(int drv, int drv_base)
124 QString drv_base_name = QString::number(drv_base);
126 if(using_flags->is_machine_tk80_series()) {
127 ext = "*.ram *.bin *.tk8";
131 if(using_flags->is_machine_pasopia_variants()) {
132 desc1 = "RAM Pack Cartridge";
134 desc1 = "Memory Dump";
136 menu_BINs[drv] = new Menu_BinaryClass(emu, menubar, QString::fromUtf8("Obj_Binary"), using_flags, this, drv);
137 menu_BINs[drv]->create_pulldown_menu();
139 menu_BINs[drv]->do_clear_inner_media();
140 menu_BINs[drv]->do_add_media_extension(ext, desc1);
141 SETUP_HISTORY(config.recent_binary_path[drv], listBINs[drv]);
142 menu_BINs[drv]->do_update_histories(listBINs[drv]);
143 menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
144 listBINs[drv].clear();
146 QString name = QString::fromUtf8("Binary");
148 tmpv.setNum(drv_base);
150 menu_BINs[drv]->setTitle(name);
153 void Ui_MainWindowBase::CreateBinaryPulldownMenu(int drv)
157 void Ui_MainWindowBase::ConfigBinaryMenuSub(int drv)
162 void Ui_MainWindowBase::retranslateBinaryMenu(int drv, int basedrv)
164 QString drive_name = (QApplication::translate("MainWindow", "Binary", 0));
165 drive_name += QString::number(basedrv);
167 if((drv < 0) || (drv >= 8)) return;
168 menu_BINs[drv]->setTitle(QApplication::translate("MainWindow", drive_name.toUtf8().constData() , 0));
169 menu_BINs[drv]->retranslateUi();
172 void Ui_MainWindowBase::ConfigBinaryMenu(void)
174 for(int i = 0; i < using_flags->get_max_binary(); i++) {
175 ConfigBinaryMenuSub(i);