just to give some hints about the new code:
- Get Q2 Sources with Subversion: "svn co http://kju-app.org/svn/q/trunk ."
- Build Q2 with XCode 3
Issues
- ppc not yet tested
- kill stray softmmus with "./killall9.sh softmmu" (the script is in the Q2 souces) :)
- no edit PC yet
things that bother mike
- since I checked in OpenGL, Q sometimes does not close correctly (looks like munmap has to wait for an unlock - munmap disabled for now)
- single click on Q Control are handled like a doubleclick, why?
- if a new document is opened, the view is placed wrong - if the previous document had a different size... wtf
- sparkle 1.1 is leaking
- leak with load/save sheets
Wishes
- You can create feature requests for the Q2 milesone
- DON'T bugreport on Q2, yet
Outline of the new Q:
- QApplication
- QApplication:NSApplication (manipulate lowlevel events)
grab special NSEvents
- QApplicationController:NSObject (handling the app delegates and initialization)
load user defaults
- QApplication:NSApplication (manipulate lowlevel events)
- QControl (a browser to manage VMs that are saved in the default or a known location)
- QControlController:NSObject
load VMs from default locationaddVMToKnownVMs(add VMs that where started from different locations (and remember them/remove them if deleted/moved)startVMpauseVM/unpauseVMstopVM-
editVM deleteVMtogglePreferences(handled like in rhetoris:) )preferences: check for updatespreferences: default Path to guestspreferences: output of QEMU errorspreferences: swich between yellow and gray interfacepreferences: display fullscreen warning
- QControlTableView:NSObject (drawing and handling the microicons)
draw microiconshandle microicons
- QControlTableViewController:NSObject (handling delegates and actions of the tableView)
implement NSTableView delegatesmouseover shows QEMU commandlinedrag'n'drop- diskimage (create new VM from image - differently handle iso/harddisk/floppy)
.qvm(add to known VMs list and show in Q Control))files(copy to the VMs shared Folder, that the files where dropped on)
- mainmenu.nib
Menu entry to show QControl window, when closedMenu entry to check for updates
- QControlNewPcAssistent:NSObject
- preconfigured VMs for various systems
- QControlImportExport:NSObject
- VPC7 (Warning, that no custom drivers are supported)
- VMWare (Warning, that no custom drivers are supported)
- Parallels (Warning, that no custom drivers are supported)
- Flashdisc im/export
- download Images from http://free.oszoo.org
- recompress/update qvms
- QControlController:NSObject
- QDocument (handling the VM)
- QDocument:NSDocument (loading and saving the VM)
loading and saving .qvm profilessaving a snapshots or a qvm(save/save as)revert to a snapshots(revert to saved)loading VM from "Open Recent" menu and QControlhandle Application Ternimation (save dialogs etc)- show CPU/IDE activity
- QDoucmentEditVMController:NSObject (editing the VM settings)
QEditVM.nibEmulation Tab(VM name, grabless mode, pause while Inactive, shared folder)Hardware Tab(new: machine, cpu, multiple Networkcards)- Network Tab (Interface to edit up to 2 (or 4?) network cards
Advanced Tab(new: use only optional arguments "no GUI configuration")
- QDoucmentTaskController:NSObject (handling the QEMU process)
launch taskcapture exit of QEMUhandle error messages of QEMU
- QDocumentDistributedObject:NSObject (handling the connection between QEMU and Q)
change/eject FDAchange/eject FDBchange/eject CDROMresetsave & add a screenshot to the package(only qcow2 supported)shutdownCPU/IDE activitypause emaulationsend ctrl-alt-deltaking screenshots
- QDocumentOpenGLView:NSOpenGLView (handling in and output)
vga outputkeyboard inputmouse inputQEMU tablet supportresizable windowfullscreenwindowanimations
- FSController:NSObject (handling fullscreen toolbar)
show fullscreen toolbar
- QDocument:NSDocument (loading and saving the VM)
- QShared (Objects that are used by different parts of Q)
- QWindow:NSWindow
custom window background
- QButtonCell:NSButtonCell
custom "textured round button"(to beTiger compatible)
- QPopUpButtonCell:NSPopUpButtonCell
custom textured round popupbutton(to beTiger compatible)
- QvmManager:NSObject
singleton instance to handle reading and writing of configuration.plist
- QSharedQemuImgController:NSObject
- create diskimages
- convert diskimages
- recompress diskimages
- compress diskimages
- QWindow:NSWindow
- sparcle 1.1
check for updates- create appcast
- cocoa.m
move base to QEMU 0.9.1vga output to QDocumentWindow(changes are sent by lines of DOvga over shared memory (mmap) and displayRect via DO)resizing QDocumentWindowcontrolling QEMU(QEMU is polling QDocumentDistributedObject - sending Inputs to QEMU was blocked by tight QEMU runloop)keyboardmousemonitorchanging drives(un)pausesavequitresetselect console- return CPU/
IDEactivity
