File: Emulator_Control_Window.h

package info (click to toggle)
aqemu 0.8.2-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 5,740 kB
  • ctags: 2,347
  • sloc: cpp: 31,857; makefile: 2
file content (150 lines) | stat: -rw-r--r-- 4,489 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/****************************************************************************
**
** Copyright (C) 2008-2010 Andrey Rijov <ANDron142@yandex.ru>
**
** This file is part of AQEMU.
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor,
** Boston, MA  02110-1301, USA.
**
****************************************************************************/

#ifndef EMULATOR_CONTROL_WINDOW_H
#define EMULATOR_CONTROL_WINDOW_H

#include <QSettings>

#include "VM.h"
#include "ui_Emulator_Control_Window.h"
#include "Monitor_Window.h"

#ifdef VNC_DISPLAY
#include "Embedded_Display/Machine_View.h"
#endif

class Virtual_Machine;

class Emulator_Control_Window: public QMainWindow
{
	Q_OBJECT
	
	public:
		Emulator_Control_Window( QWidget *parent = 0 );
		
		void Set_Current_VM( Virtual_Machine *vm );
		void Init();
		void Set_Show_Close_Warning( bool on );
		void Use_Minimal_Size( bool use );
		
		Monitor_Window *Mon_Win;
		bool First_Start;
		
	signals:
		void Ready_Read_Command( QString com );
		
	private slots:
		void Apply_Full_Size( int w, int h );
		void QEMU_Quit();
		void VM_State_Changet( Virtual_Machine *vm, VM::VM_State state );
		
		void on_actionSave_Screenshot_triggered();
		void on_actionSave_Screenshot_As_triggered();
		void on_actionSave_VM_triggered();
		void on_actionManage_Snapshots_triggered();
		void on_actionCommit_triggered();
		void on_actionPause_VM_triggered();
		void on_actionPower_Off_triggered();
		void on_actionReset_VM_triggered();
		void on_actionQEMU_Monitor_triggered();
		void on_actionQuit_triggered();
		
		void on_actionFD0_dev_fd0_triggered();
		void on_actionFD0_dev_null_triggered();
		void on_actionFD0_Other_triggered();
		void on_actionFD0_Eject_triggered();
		void Open_Recent_Floppy0_Image();
		
		void on_actionFD1_dev_fd0_triggered();
		void on_actionFD1_dev_null_triggered();
		void on_actionFD1_Other_triggered();
		void on_actionFD1_Eject_triggered();
		void Open_Recent_Floppy1_Image();
		
		void on_actionCDROM_dev_cdrom_triggered();
		void on_actionCDROM_dev_null_triggered();
		void on_actionCDROM_Other_triggered();
		void on_actionCDROM_Eject_triggered();
		void Open_Recent_CD_ROM_Image();
		
		void Delete_USB_From_VM();
		void Add_USB_To_VM();
		
		void on_actionUSB_Update_Device_List_triggered();
		void on_actionBy_Bus_Address_triggered();
		void on_actionUSB_Disconnect_All_Devices_triggered();
		
		void on_actionCtrl_Alt_Delete_triggered();
		void on_actionOther_Keys_triggered();
		void on_actionCtrl_Alt_Backspace_triggered();
		void on_actionCtrl_Alt_F1_triggered();
		void on_actionCtrl_Alt_F2_triggered();
		void on_actionCtrl_Alt_F3_triggered();
		void on_actionCtrl_Alt_F4_triggered();
		void on_actionCtrl_Alt_F5_triggered();
		void on_actionCtrl_Alt_F6_triggered();
		void on_actionCtrl_Alt_F7_triggered();
		void on_actionCtrl_Alt_F8_triggered();
		void on_actionCtrl_Alt_F9_triggered();
		void on_actionCtrl_Alt_F10_triggered();
		void on_actionCtrl_Alt_F11_triggered();
		void on_actionCtrl_Alt_F12_triggered();
		
		#ifdef VNC_DISPLAY
		void on_actionDisplay_Scaling_triggered();
		void on_actionFullscreen_Mode_triggered();
		void on_actionReinit_VNC_triggered();
		void Connect_VNC();
		bool Use_VNC();
		#endif
		
		void on_actionAbout_Emulator_Control_triggered();
		
	protected:
		void closeEvent( QCloseEvent *event );
		
	private:
		Ui::Emulator_Control_Window ui;
		bool Show_Close_Warning;
		bool Fullscreen_Menu_Added;
		Virtual_Machine *Cur_VM;
		QSettings Settings;
		QList<QAction*> Recent_Files_CD_Items;
		QList<QAction*> Recent_Files_FD0_Items;
		QList<QAction*> Recent_Files_FD1_Items;
		
		#ifdef VNC_DISPLAY
		MachineView *Machine_View;
		#endif
		
		void Update_Recent_CD_ROM_Images_List();
		void Update_Recent_Floppy_Images_List();
		
		bool CD_ROM_Available();
		bool FD0_Available();
		bool FD1_Available();
		
		void Set_Device( const QString &dev_name, const QString &path );
};

#endif