AQEMU: add haiku icons

This commit is contained in:
Gerasim Troeglazov
2020-05-23 13:45:31 +10:00
parent 45f4aa3d9e
commit 5de099aecf
4 changed files with 336 additions and 23 deletions

View File

@@ -1,5 +1,5 @@
resource app_flags B_SINGLE_LAUNCH | B_ARGV_ONLY;
resource app_flags B_SINGLE_LAUNCH;
resource app_version {
major = @MAJOR@,
@@ -15,3 +15,104 @@ resource app_version {
resource app_signature "@APP_SIGNATURE@";
resource vector_icon {
$"6E6369660F020016023948D63D3094BDDFAB39FD1F4ABA27497CCF00FFFF1002"
$"010602374523320A99B7657F3CB86948145E49514700F3C7B8FFD56138020106"
$"02377098344AFAB86DC73BA4CE49CB2B4B39D100F3C7B8FFD5613803CDBCB705"
$"FF05A4050104017B020116043600000000000000003600004780004480000001"
$"480169FFFFFF0400540500030000E5033366FF036698FF0398CBFF150212C0AD"
$"BDA5C0A6BDA3C125BDC0C1FCBE39C19CBDEAC209BE44C280BED9C267BEABC28C"
$"BEEEC2B6BFA0C2B0BF74C2CFC031C29AC155C2C0C0C7C28EC17E4449C22A47C0"
$"6DC439BF18C4E7BF12C4DCBED3C4F9BE4BC51DBE90C510BE1BC52DBD26C550BD"
$"57C54EBCD6C553BC37C54DBC87C54DBC3AC55DBC41C57CBC3DC56CBC38C56637"
$"C53ABC31C550BBBCC527BAE6C4E6BB4DC512BA79C4B8B9B5C433BA0FC480B984"
$"C408B934C3A2B954C3DBB8E2C314B8E6C1C8B8CCC268B8E9C1B63141B926C0C5"
$"353DBD4DBDFABC93BE2D3F3A0221BAF9B64B3226BB2DB67CBB6FB6FABB50B6BB"
$"BB81B726BB9EB77FBB95B751BBAEB7C1BBB9B849BBB6B805362EBBB4B929BBB9"
$"B8DEBBA2B9EBBB4FBB67BB7BBAAABB40BB97BB2BBBF9BB36BBC8BAFEBCA3BACC"
$"BDFFBADCBD50BACCBE55BACDBF01BAB9BEACBAD7BF31BAE3BF94BAD8BF63BAF1"
$"BFD2BB1CC04BBB00C011BB2AC06FBB3CC0BBBB31C096BB4EC0FDBB59C187BB5A"
$"C142BB5CC1DBBB13C276BB4AC234BAE9C2A3BA74C2CDBAB2C2C6BA2EC2D4B9AB"
$"C298B9E4C2C3B988C27EB951C239B969C25DB93AC216B916C1C9B929C1EEB914"
$"C1A7B901C165B909C186B905C123B8F7C0A1B8F1C0E3B8FDC075B905C01DB8FC"
$"C049B911BFE5B927BF74B918BFACB932BF41B94DBEDBB93CBF0DB9A8BD78BA33"
$"BAA8BA1BBC18BA37BA53BA29B9AABA34B9FEBA0FB945B9AAB88DB9EEB8DEB99D"
$"B87EB980B864B990B86FB963B85DB927B868B944B860B90AB871B8CEB875B8EB"
$"B86BB8B4B87EB87EB877B899B87BB8D1B85FB82CB7B22A2EB845B79EB875B773"
$"B861B78DB872B7362E28B88EB6333026020F444CC143C47EC15CC4B14350434E"
$"C0E7C634C0D7C8B14157C0D757C0B4C958C0D7C9294159BFD9CA39BFDFCA2CBF"
$"BCCA70BF83CAEDBF85CAEABF7BCAF9BF6ACB10BF72CB043FCB28BEB0CB36BED6"
$"CB46BE8FCB2ABE68CAC9BE67CAD6BE2ECAEEBDB0CB26BDF2CB103A5DBD15CAFE"
$"BD18CB19395BBDBCCA06BD83CA2BBE2EC9B2BF34C94DBEBEC99A40574053BFC7"
$"C7E2BFC7C5E43F4EBF64C5723F4E02143B4E3A4EBDC5C57D3953BD0DC6D5BCEA"
$"C783BCEEC8BE3856BCF1C8E0BCB9C93D3958BC82C949BC16C92ABC4BC935BBAB"
$"C912BACEC91DBB3BC90BBAACC921BA67C92ABA89C9213158B93AC93C3158B91C"
$"C935B8EDC908B8F9C9282F56B95BC877B935C880B974C86DB9A8C870B98FC871"
$"B9B8C861B9D8C846B9C4C84EBA05C82DBA6BC835BA3AC829BAA7C843BB22C856"
$"BAE3C8563656BC0CC809BBF7C826BC21C7EDBC63C6FA3755BC66C6C9BC5EC602"
$"BC65C624BC56C5D4BC41C57CBC4DC5A8BC3DC56CBC37C54DBC3AC55DBC87C54D"
$"BD26C550BCD6C553BD26C5500207B8E8B717B8CBB751B8F7B6FFB925B6DDB906"
$"B6E1B943B6DFB966B712B958B6FAB976B72EBA16B787312BBA3DB798BA4CB7F0"
$"BA58B7C6312FB74BB85C2D2E2B2C2E2B2D2CB8C7B73D0025C413BBB7C413BBB7"
$"C438BBADC483BB9FC45DBB9EC48DBB9EC49ABBABC494BBA4C49ABBBFC482BBE0"
$"C48FBBD1C45FBC0CC403BC4EC42FBC2BC45EBC29C523BC05C4BEBC00C540BC06"
$"C577BC1FC561BC0AC58CBC36C573BC72C587BC5CC553BC97C4FBBCC5C524BCAB"
$"C4C1BCE9C45DBD45C48EBD16C4B0BD294EBCEAC500BD04C57CBCDFC5D3BCEFC5"
$"AEBCD2C5E9BD06C5F4BD48C5F8BD28C5E2BD65C5A1BD7EC5C0BD72C52FBDA7C4"
$"50BE0AC4B3BDBFC4A2BDF8C54ABDFCC4F7BDEEC56FBE02C5B0BE2AC594BE0FC5"
$"BDBE37C5C2BE5DC5C8BE4AC5BBBE70C594BE7EC5A6BE78C54CBE92C4B7BE91C5"
$"00BE8AC473BE93C3EDBE9CC430BE93C372BEA6C280BED9C2F6BEB4C267BEABC2"
$"23BE5DC248BE81C233BE53C255BE41C244BE49C2A5BE1EC34ABDE9C2F5BDFDC3"
$"8BBDD7C40EBDB9C3D3BDDCC3E0BDAEC380BDB5C3AFBDB0C308BDBFC22ABE1BC2"
$"93BDE2C21ABE24C1FCBE39C20BBE2EC19CBDEAC0ADBDA5C125BDC0C0F5BD4AC1"
$"9BBCA8C147BCF7C1E3BC66C282BBF6C22EBC28C2B6BBD8C32DBBBF48BBBFC319"
$"BBD7C2EBBC01C301BBECC2E1BC09C2CEBC1BC2D8BC12C2BDBC2CC2ABBC5AC2B3"
$"BC43C31FBC1BC413BBB7C394BBDBC413BBB7021AC12EC2E5C118C2E2C14DC2E3"
$"C166C2A8C15CC2C2C170C2BEC17FC2EDC179C2D5C196C34AC181C40BC19DC3AE"
$"C175C42CC147C463C164C44FC130C472C115C445C121C454C107C469C0C7C49D"
$"C0F3C497C0A9C4A2C08BC46EC09AC483C083C49DC04FC4F0C073C4CEC03BC505"
$"BFFDC4FBC016C50DBFE7C4EABFCFC4B6BFDDC4CEBFC1C4C9BF97C4E3BFB4C4E8"
$"BF78C4DCBF4EC4ABBF62C4C2BF3AC494BF1EC45CBF30C475BF0DC44CBEE8C42C"
$"BEF3C443BEBFC3E5BED0C340BEC1C38FBED8C33EBEE9C339BEE0C33BBEF2C350"
$"BF13C376BEFBC36ABF33C387BF75C364BF5CC37CBF90C34DBFA6C30ABF9CC32A"
$"BFB4C324BFDDC351BFBFC345BFF4C35CC022C345C00EC352C03BC334C055C2FD"
$"C048C318C05FC309C073C320C068C316C083C330C0B1C328C09DC32EC0D8C318"
$"C0F7C2C8C0EDC2EFC108C2D30205C29BBCA8C23EBCDCC2C9BC91C32DBC74C2F9"
$"BC79C319BC88C2E6BCA1C2FFBC95C2A0BCC4C229BD29C261BCF3C204BD48C1B9"
$"BD86C1E4BD6FC1E9BD260205C3FFBC88C3B3BCA2C41EBC7DC45FBC75C43EBC74"
$"C44FBC81C42BBC8EC43EBC89C405BC9AC3BEBCC1C3E1BCADC393BCDCC33EBD13"
$"C36DBD00C36ABCCF0207C22ABE1BC21ABE24C293BDE2C380BDB5C308BDBFC3AF"
$"BDB0C40EBDB9C3E0BDAEC3D3BDDCC34ABDE9C38BBDD7C2F5BDFDC255BE41C2A5"
$"BE1EC244BE49C223BE5DC233BE53C216BE50C1FCBE39C209BE44C20BBE2E0204"
$"4030C34530BC3A30304030BC3A30C3454050BC3A50C34550504050C34550BC3A"
$"02042F2330232E232D252D242D262F272E2730273125312631240A0BC28CB54E"
$"BDD920B9ADB75220C4AAB81BC737BAE1C44CBDDFC5C5BEAEC8D0BF2DCABDC30D"
$"CCB1C778C81A0A04C1EDB5D8BE36B9C2C2E8CBC2C69FC7D80A08B8FEC27FBE8C"
$"C539BFE6CA41C2E8CBC2BE36B9C2BA4CB7CDB409C452B745C5F00A03B7FCC63E"
$"BA2AC3F3B955C38A0A04BE04B3E3BA4CB7CDBE36B9C2C1EDB5D80A06BEB9B9D6"
$"3CB930BDC7BA11C24ECB6EC2E8CBC2C34CCB5D0A08C1EDB5D8C189B5A6BE22B9"
$"34BAA6B776BA4CB7CDBA1AB831BE54BA47C20BB65D0A03BC37BC2FB9AEC141BE"
$"26C3930A042A424B504F4434371C0A07020A14024067BA0000000000003EDA12"
$"C3C3B549B8E30A060103124032F3000000000000402C3F38AEA3C438E3011583"
$"00040A010103024032F3000000000000402C3F38AEA3C438E30A060606020900"
$"0504124032F3000000000000402C3F38AEA3C438E301178322040A0001000240"
$"32F3000000000000402C3F38AEA3C438E30A020102024032F300000000000040"
$"2C3F38AEA3C438E30A060105124032F3000000000000402C3F38AEA3C438E301"
$"178100040A040105024032F3000000000000402C3F38AEA3C438E30A05010612"
$"4032F3000000000000402C3F38AEA3C438E301178100040A040106024032F300"
$"0000000000402C3F38AEA3C438E30A050107024032F3000000000000402C3F38"
$"AEA3C438E30A050108024032F3000000000000402C3F38AEA3C438E30A050109"
$"024032F3000000000000402C3F38AEA3C438E30A0A010C123ECD962F7232AF77"
$"F93ED248448DB3473A7B01158100040A0B010D023ECD962F7232AF77F93ED248"
$"448DB3473A7B0A0C010E023ECD962F7232AF77F93ED248448DB3473A7B0A0B01"
$"0F023ECD962F7232AF77F93ED248448DB3473A7B0A0D0110023ECD962F7232AF"
$"77F93ED248448DB3473A7B0A0D0111023ECD962F7232AF77F93ED248448DB347"
$"3A7B0A0E0112023ECD962F7232AF77F93ED248448DB3473A7B0A0A0113023ECD"
$"962F7232AF77F93ED248448DB3473A7B0A060101124032F3000000000000402C"
$"3F38AEA3C438E301178322040A010101024032F3000000000000402C3F38AEA3"
$"C438E30A030104024032F3000000000000402C3F38AEA3C438E30A06010B123E"
$"D3400000000000003ED34044B3E640EFDE01178422040A08010B023ED3400000"
$"000000003ED34044B3E640EFDE0A06010B123FFFFF0000000000003FFFFF4400"
$"0040000001178300040A08010B023FFFFF0000000000003FFFFF440000400000"
};

Binary file not shown.

View File

@@ -5,11 +5,14 @@ the majority of QEMU and KVM options."
HOMEPAGE="https://github.com/tobimensch/aqemu/"
COPYRIGHT="2008-2017 Andrey Rijov"
LICENSE="GNU GPL v2"
REVISION="3"
REVISION="4"
SOURCE_URI="https://github.com/tobimensch/aqemu/archive/v$portVersion.tar.gz"
CHECKSUM_SHA256="e3d54de00ebdce3754f97f7e0e7cce8cebb588e8ce6bc249401cc909281b08de"
PATCHES="aqemu-$portVersion.patchset"
ADDITIONAL_FILES="aqemu.rdef.in"
ADDITIONAL_FILES="
aqemu.rdef.in
haikuicons.zip
"
ARCHITECTURES="!x86_gcc2 x86_64"
SECONDARY_ARCHITECTURES="x86"
@@ -21,6 +24,7 @@ PROVIDES="
REQUIRES="
haiku$secondaryArchSuffix
qemu$secondaryArchSuffix
lib:libdbus_1$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Network$secondaryArchSuffix
@@ -32,6 +36,7 @@ REQUIRES="
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libdbus_1$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix
devel:libQt5Gui$secondaryArchSuffix
devel:libQt5Network$secondaryArchSuffix
@@ -44,26 +49,30 @@ BUILD_REQUIRES="
BUILD_PREREQUIRES="
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:lrelease$secondaryArchSuffix >= 5
cmd:make
cmd:qdbuscpp2xml$secondaryArchSuffix >= 5
"
PATCH()
{
unzip -o $sourceDir/../../additional-files/haikuicons.zip -d $sourceDir/resources
}
BUILD()
{
mkdir -p build
cd build
cmake $cmakeDirArgs ..
cmake .. -DCMAKE_BUILD_TYPE=Release
make $jobArgs
}
INSTALL()
{
cd build
make install
mkdir -p $appsDir/AQEMU
mv $prefix/bin/aqemu $appsDir/AQEMU/AQEMU
mv $prefix/share/aqemu/* $appsDir/AQEMU
rm -rf $binDir $prefix/share
cp build/aqemu $appsDir/AQEMU/AQEMU
cp -rf resources/{docs,os_icons,os_templates} $appsDir/AQEMU
cp -rf *.rcc $appsDir/AQEMU
# Add Haiku resources
local APP_SIGNATURE="application/x-vnd.qt5-aqemu"

View File

@@ -1,8 +1,9 @@
From 44d7e9a4ebb1062d5949f5a5d8e6346ad6cec8e9 Mon Sep 17 00:00:00 2001
From: Ruixuan Tu <turx2003@gmail.com>
Date: Wed, 4 Dec 2019 21:00:00 +0800
From 4a0e535415da4d786bb4f910416beea93dbe111a Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Tue, 5 May 2020 18:27:33 +1000
Subject: GCi 2019 Task - Aqemu - Add platform specific code to get memory size
diff --git a/src/Add_Port_Window.cpp b/src/Add_Port_Window.cpp
index 116122c..46b8e27 100644
--- a/src/Add_Port_Window.cpp
@@ -93,15 +94,217 @@ index d0e2f35..fe325f7 100644
static bool Scan_USB_Proc( QList<VM_USB> &list );
static bool Read_SysFS_File( const QString &path, QString &data );
diff --git a/src/main.cpp b/src/main.cpp
index 46c96b6..c8ad196 100644
index 40a3c61..ace8799 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -361,7 +361,7 @@ int AQEMU_Main::find_data_folders()
// Find Data Folder
if( settings->value("AQEMU_Data_Folder", "").toString().isEmpty() )
{
- #ifdef Q_OS_WIN32
+ #if defined Q_OS_WIN32 || defined Q_OS_HAIKU
if( QDir(QDir::currentPath() + "\\os_icons").exists() &&
QDir(QDir::currentPath() + "\\os_templates").exists() )
{
@@ -240,7 +240,7 @@ int main( int argc, char *argv[] )
// Find Data Folder
if( settings.value("AQEMU_Data_Folder", "").toString().isEmpty() )
{
- #ifdef Q_OS_WIN32
+ #if defined Q_OS_WIN32 || defined Q_OS_HAIKU
if( QDir(QDir::currentPath() + "\\os_icons").exists() &&
QDir(QDir::currentPath() + "\\os_templates").exists() )
{
--
2.26.0
From 97e54f7588b6ea1074dd7da0d87135091cfc1126 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Tue, 5 May 2020 19:32:10 +1000
Subject: Add Qt to X11 scancode mapper for VNC
diff --git a/src/Embedded_Display/vncview.cpp b/src/Embedded_Display/vncview.cpp
index 8faef72..97527b1 100644
--- a/src/Embedded_Display/vncview.cpp
+++ b/src/Embedded_Display/vncview.cpp
@@ -46,6 +46,116 @@
#include <QPainter>
#include <QMouseEvent>
+#ifdef Q_OS_HAIKU
+
+static const uint misc_keys[] =
+{
+ XK_Escape,
+ XK_Tab,
+ XK_Tab, //XK_ISO_Left_Tab
+ XK_BackSpace,
+ XK_Return,
+ XK_KP_Enter,
+ XK_Insert,
+ XK_Delete,
+ XK_Pause,
+ XK_Print,
+ XK_Sys_Req,
+ XK_Clear,
+
+ 0, 0, 0, 0, // padding
+
+ XK_Home,
+ XK_End,
+ XK_Left,
+ XK_Up,
+ XK_Right,
+ XK_Down,
+ XK_Page_Up,
+ XK_Page_Down,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, // padding
+
+ XK_Shift_L,
+ XK_Control_L,
+ XK_Super_L,
+ XK_Alt_L,
+ XK_Caps_Lock,
+ XK_Num_Lock,
+ XK_Scroll_Lock,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, // padding
+
+ XK_F1,
+ XK_F2,
+ XK_F3,
+ XK_F4,
+ XK_F5,
+ XK_F6,
+ XK_F7,
+ XK_F8,
+ XK_F9,
+ XK_F10,
+ XK_F11,
+ XK_F12,
+ XK_F13,
+ XK_F14,
+ XK_F15,
+ XK_F16,
+ XK_F17,
+ XK_F18,
+ XK_F19,
+ XK_F20,
+ XK_F21,
+ XK_F22,
+ XK_F23,
+ XK_F24,
+ XK_F25,
+
+ 0
+};
+
+static bool capslock_active = false;
+static Qt::KeyboardModifiers mod_last = 0;
+
+unsigned int map_qt_to_x11(QKeyEvent *e)
+{
+ int k = e->key();
+ bool pressed = (e->type() == QEvent::KeyPress);
+ Qt::KeyboardModifiers mod = e->modifiers();
+ Qt::KeyboardModifiers modXor = mod ^ mod_last;
+ mod_last = mod;
+
+ if (k >= XK_space && k <= XK_ydiaeresis)
+ {
+ #define XOR(a, b) (!(a && b) && (a || b))
+
+ // check if lowercase ascii
+ if ((k >= XK_A && k <= XK_Z
+ || k >= XK_Agrave && k <= XK_Thorn)
+ && !(XOR(mod & Qt::ShiftModifier, capslock_active)))
+ return k + 0x20;
+
+ #undef XOR
+ qDebug() << k;
+ return k;
+ }
+
+ if (k >= 0x01000000 && k <= 0x01000048) {
+ return misc_keys[k - 0x01000000];
+ }
+
+ if (modXor & Qt::ShiftModifier)
+ return XK_Shift_L;
+ if (modXor & Qt::ControlModifier)
+ return XK_Control_L;
+ if (modXor & Qt::AltModifier)
+ return XK_Alt_L;
+
+ return 0;
+}
+#endif
+
// Definition of key modifier mask constants
#define KMOD_Alt_R 0x01
#define KMOD_Alt_L 0x02
@@ -579,7 +689,11 @@ void VncView::keyEventHandler(QKeyEvent *e)
return;
// parts of this code are based on http://italc.sourcearchive.com/documentation/1.0.9.1/vncview_8cpp-source.html
+#ifdef Q_OS_HAIKU
+ rfbKeySym k = map_qt_to_x11(e);
+#else
rfbKeySym k = e->nativeVirtualKey();
+#endif
// we do not handle Key_Backtab separately as the Shift-modifier
// is already enabled
--
2.26.0
From 2493544de2b6e7acbe143115ecd653152b1c8309 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Tue, 5 May 2020 20:49:18 +1000
Subject: Use application dir as data dir
diff --git a/src/main.cpp b/src/main.cpp
index ace8799..ef05043 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -240,7 +240,7 @@ int main( int argc, char *argv[] )
// Find Data Folder
if( settings.value("AQEMU_Data_Folder", "").toString().isEmpty() )
{
- #if defined Q_OS_WIN32 || defined Q_OS_HAIKU
+ #ifdef Q_OS_WIN32
if( QDir(QDir::currentPath() + "\\os_icons").exists() &&
QDir(QDir::currentPath() + "\\os_templates").exists() )
{
@@ -257,6 +257,9 @@ int main( int argc, char *argv[] )
dataDirs << "/usr/share/aqemu/"
<< "/usr/share/apps/aqemu/"
<< "/usr/local/share/aqemu/";
+#ifdef Q_OS_HAIKU
+ dataDirs << QCoreApplication::applicationDirPath() + "/";
+#endif
// Find data dir
for( int dx = 0; dx < dataDirs.count(); ++dx )
--
2.26.0
From 109b0f04f8d6d2a365c1762cd35ec7b8c412f30e Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sat, 23 May 2020 13:35:04 +1000
Subject: Disable optimizations
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2dd5eb7..5f52c2d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,6 +23,8 @@ IF( DEBUG )
ADD_DEFINITIONS( -Wall -g )
ENDIF( DEBUG )
+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O0")
+
# For find VNC libs
SET( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules )
--
2.26.0