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.h"
12 #include "commonclasses.h"
13 #include "qt_dialogs.h"
15 #include "agar_logger.h"
17 #include "menu_binary.h"
19 #ifdef USE_BINARY_FILE1
20 void Object_Menu_Control::on_recent_binary_load(void){
21 // write_protect = false; // Right? On D88, May be writing entry exists.
22 emit set_recent_binary_load(drive, s_num);
24 void Object_Menu_Control::on_recent_binary_save(void){
25 // write_protect = false; // Right? On D88, May be writing entry exists.
26 emit set_recent_binary_save(drive, s_num);
29 void Object_Menu_Control::_open_binary(QString s){
30 bool load = this->isPlay();
31 int d = this->getDrive();
32 emit sig_open_binary_file(d, s, load);
34 void Object_Menu_Control::insert_binary_load(void) {
35 emit sig_open_binary(getDrive(), true);
37 void Object_Menu_Control::insert_binary_save(void) {
38 emit sig_open_binary(getDrive(), false);
42 #if defined(USE_BINARY_FILE1)
43 int Ui_MainWindow::set_recent_binary_load(int drv, int num)
47 char path_shadow[PATH_MAX];
50 if((num < 0) || (num >= MAX_HISTORY)) return -1;
52 s_path = QString::fromUtf8(config.recent_binary_path[drv][num]);
53 strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
54 UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
55 strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
57 get_parent_dir(path_shadow);
58 strcpy(config.initial_binary_dir, path_shadow);
59 //strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
61 emit sig_load_binary(drv, s_path);
62 menu_BINs[drv]->do_update_histories(listBINs[drv]);
63 menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
67 int Ui_MainWindow::set_recent_binary_save(int drv, int num)
70 char path_shadow[PATH_MAX];
73 if((num < 0) || (num >= MAX_HISTORY)) return -1;
75 s_path = QString::fromUtf8(config.recent_binary_path[drv][num]);
76 strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
77 UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
78 strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
80 get_parent_dir(path_shadow);
81 strcpy(config.initial_binary_dir, path_shadow);
82 //strncpy(path_shadow, s_path.toUtf8().constData(), PATH_MAX);
84 emit sig_save_binary(drv, s_path);
85 menu_BINs[drv]->do_update_histories(listBINs[drv]);
86 menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
91 void Ui_MainWindow::_open_binary_load(int drv, const QString fname)
93 char path_shadow[PATH_MAX];
95 if(fname.length() <= 0) return;
97 strncpy(path_shadow, fname.toUtf8().constData(), PATH_MAX);
98 UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
99 get_parent_dir(path_shadow);
100 strcpy(config.initial_binary_dir, path_shadow);
102 emit sig_load_binary(drv, fname);
104 menu_BINs[drv]->do_update_histories(listBINs[drv]);
105 menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
108 void Ui_MainWindow::_open_binary_save(int drv, const QString fname)
110 char path_shadow[PATH_MAX];
112 if(fname.length() <= 0) return;
114 strncpy(path_shadow, fname.toUtf8().constData(), PATH_MAX);
115 UPDATE_HISTORY(path_shadow, config.recent_binary_path[drv], listBINs[drv]);
116 get_parent_dir(path_shadow);
117 strcpy(config.initial_binary_dir, path_shadow);
119 emit sig_save_binary(drv, fname);
121 menu_BINs[drv]->do_update_histories(listBINs[drv]);
122 menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
126 #if defined(USE_BINARY_FILE1)
128 void Ui_MainWindow::CreateBinaryMenu(int drv, int drv_base)
130 QString drv_base_name = QString::number(drv_base);
132 # if defined(_TK80BS) || defined(_TK80)
133 ext = "*.ram *.bin *.tk8";
137 # if defined(_PASOPIA) || defined(PASOPIA7)
138 desc1 = "RAM Pack Cartridge";
140 desc1 = "Memory Dump";
142 menu_BINs[drv] = new Menu_BinaryClass(emu, menubar, QString::fromUtf8("Obj_Binary"), this, drv);
143 menu_BINs[drv]->create_pulldown_menu();
145 menu_BINs[drv]->do_clear_inner_media();
146 menu_BINs[drv]->do_add_media_extension(ext, desc1);
147 SETUP_HISTORY(config.recent_binary_path[drv], listBINs[drv]);
148 menu_BINs[drv]->do_update_histories(listBINs[drv]);
149 menu_BINs[drv]->do_set_initialize_directory(config.initial_binary_dir);
150 listBINs[drv].clear();
152 QString name = QString::fromUtf8("Binary");
154 tmpv.setNum(drv_base);
156 menu_BINs[drv]->setTitle(name);
160 void Ui_MainWindow::CreateBinaryPulldownMenu(int drv)
164 void Ui_MainWindow::ConfigBinaryMenuSub(int drv)
170 void Ui_MainWindow::retranslateBinaryMenu(int drv, int basedrv)
172 #if defined(USE_BINARY_FILE1)
173 QString drive_name = (QApplication::translate("MainWindow", "Binary", 0));
174 drive_name += QString::number(basedrv);
176 if((drv < 0) || (drv >= 8)) return;
177 menu_BINs[drv]->setTitle(QApplication::translate("MainWindow", drive_name.toUtf8().constData() , 0));
178 menu_BINs[drv]->retranslateUi();
182 void Ui_MainWindow::ConfigBinaryMenu(void)
185 #if defined(USE_BINARY_FILE1)
186 ConfigBinaryMenuSub(0);
188 #if defined(USE_BINARY_FILE2)
189 ConfigBinaryMenuSub(1);