diff --git a/kemu/CMakeLists.txt b/kemu/CMakeLists.txt
index 7604776f..c988381c 100644
--- a/kemu/CMakeLists.txt
+++ b/kemu/CMakeLists.txt
@@ -6,6 +6,7 @@ find_package(KDE4)
include(KDE4Defaults)
include_directories(${KDE4_INCLUDES})
+add_definitions(${KDE4_DEFINITIONS})
set(kemu_sources
main.cpp
diff --git a/kemu/kemu.ui b/kemu/kemu.ui
index b76ccead..7a5e2a7a 100644
--- a/kemu/kemu.ui
+++ b/kemu/kemu.ui
@@ -83,16 +83,6 @@
- -
-
-
- Hard Drive image
-
-
-
- -
-
-
-
@@ -100,12 +90,19 @@
+ -
+
+
+ -
+
+
+ Hard Drive image
+
+
+
-
- -
-
-
-
@@ -113,6 +110,9 @@
+ -
+
+
-
@@ -173,7 +173,10 @@
- -
+
-
+
+
+ -
Kernel-based Virtual Machine
@@ -183,7 +186,7 @@
- -
+
-
Qt::Vertical
@@ -196,16 +199,27 @@
- -
-
-
- -
+
-
Extra arguments
+ -
+
+
+ CPU cores
+
+
+
+ -
+
+
+ 1
+
+
+
diff --git a/kemu/kemumainwindow.cpp b/kemu/kemumainwindow.cpp
index a2d29cc0..084164a1 100644
--- a/kemu/kemumainwindow.cpp
+++ b/kemu/kemumainwindow.cpp
@@ -25,6 +25,7 @@
#include
#include
#include
+#include
#include "kemumainwindow.h"
#include "ui_kemu.h"
@@ -33,8 +34,6 @@ KEmuMainWindow::KEmuMainWindow(QWidget *parent, Qt::WindowFlags flags)
: KXmlGuiWindow(parent, flags), m_kemuui(new Ui_KEmuWindow)
{
m_kemuui->setupUi(this);
- m_kemuui->startStopButton->setText(i18n("Start"));
- m_kemuui->startStopButton->setIcon(KIcon("system-run"));
KAction *a = actionCollection()->addAction("harddisk_create", this, SLOT(createHardDrive()));
a->setText(i18n("Create Hard Disk image"));
@@ -53,6 +52,9 @@ KEmuMainWindow::KEmuMainWindow(QWidget *parent, Qt::WindowFlags flags)
setWindowIcon(KIcon("applications-engineering"));
m_kemuui->groupBox->setEnabled(false);
+ m_kemuui->startStopButton->setText(i18n("Start"));
+ m_kemuui->startStopButton->setIcon(KIcon("system-run"));
+ m_kemuui->CPUInput->setMaximum(QThread::idealThreadCount());
connect(m_kemuui->machinesList->listView()->selectionModel(),
SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
this, SLOT(machineChanged(QItemSelection,QItemSelection)));
@@ -123,6 +125,7 @@ KEmuMainWindow::KEmuMainWindow(QWidget *parent, Qt::WindowFlags flags)
connect(m_kemuui->systemComboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(machineSave(QString)));
connect(m_kemuui->videoComboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(machineSave(QString)));
connect(m_kemuui->RAMInput, SIGNAL(valueChanged(int)), this, SLOT(machineSave(int)));
+ connect(m_kemuui->CPUInput, SIGNAL(valueChanged(int)), this, SLOT(machineSave(int)));
connect(m_kemuui->KVMCheckBox, SIGNAL(stateChanged(int)), this, SLOT(machineSave(int)));
connect(m_kemuui->argumentsLineEdit, SIGNAL(textChanged(QString)), this, SLOT(machineSave(QString)));
}
@@ -165,6 +168,7 @@ void KEmuMainWindow::machineSave(const QString ignored)
m_settings->setValue(machine + "/system", m_kemuui->systemComboBox->currentText());
m_settings->setValue(machine + "/video", m_kemuui->videoComboBox->currentText());
m_settings->setValue(machine + "/ram", m_kemuui->RAMInput->value());
+ m_settings->setValue(machine + "/cpu", m_kemuui->CPUInput->value());
m_settings->setValue(machine + "/kvm", m_kemuui->KVMCheckBox->isChecked());
m_settings->setValue(machine + "/args", m_kemuui->argumentsLineEdit->text());
m_settings->sync();
@@ -189,6 +193,7 @@ void KEmuMainWindow::machineLoad(const QString machine)
const int videoIndex = m_kemuui->videoComboBox->findText(video);
m_kemuui->videoComboBox->setCurrentIndex(videoIndex);
m_kemuui->RAMInput->setValue(m_settings->value(machine + "/ram", 32).toInt());
+ m_kemuui->CPUInput->setValue(m_settings->value(machine + "/cpu", 1).toInt());
m_kemuui->KVMCheckBox->setChecked(m_settings->value(machine + "/kvm", false).toBool());
m_kemuui->argumentsLineEdit->setText(m_settings->value(machine + "/args").toString());
}
@@ -257,6 +262,7 @@ void KEmuMainWindow::startStopMachine()
} else {
kDebug() << "starting machine" << machine;
QStringList machineArgs;
+ machineArgs << "-name" << machine;
const QString CDRom = m_kemuui->CDROMInput->url().prettyUrl();
if (!CDRom.isEmpty()) {
machineArgs << "-cdrom" << CDRom;
@@ -272,6 +278,7 @@ void KEmuMainWindow::startStopMachine()
}
machineArgs << "-vga" << m_kemuui->videoComboBox->currentText();
machineArgs << "-m" << QByteArray::number(m_kemuui->RAMInput->value());
+ machineArgs << "-smp" << QByteArray::number(m_kemuui->CPUInput->value());
if (m_kemuui->KVMCheckBox->isChecked()) {
machineArgs << "-enable-kvm";
}