mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-23 18:32:51 +00:00
kemu: make it possible to control CPU cores used easily
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
This commit is contained in:
parent
f0da391b18
commit
4fc7efa0f9
3 changed files with 43 additions and 21 deletions
|
@ -6,6 +6,7 @@ find_package(KDE4)
|
|||
include(KDE4Defaults)
|
||||
|
||||
include_directories(${KDE4_INCLUDES})
|
||||
add_definitions(${KDE4_DEFINITIONS})
|
||||
|
||||
set(kemu_sources
|
||||
main.cpp
|
||||
|
|
52
kemu/kemu.ui
52
kemu/kemu.ui
|
@ -83,16 +83,6 @@
|
|||
<string/>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Hard Drive image</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="KUrlRequester" name="CDROMInput"/>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
|
@ -100,12 +90,19 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="KUrlRequester" name="CDROMInput"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Hard Drive image</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QComboBox" name="systemComboBox"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="KUrlRequester" name="HardDriveInput"/>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
|
@ -113,6 +110,9 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="KUrlRequester" name="HardDriveInput"/>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
|
@ -173,7 +173,10 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<item row="8" column="1">
|
||||
<widget class="KLineEdit" name="argumentsLineEdit"/>
|
||||
</item>
|
||||
<item row="6" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="KVMCheckBox">
|
||||
<property name="text">
|
||||
<string>Kernel-based Virtual Machine </string>
|
||||
|
@ -183,7 +186,7 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0" colspan="2">
|
||||
<item row="7" column="0" colspan="2">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
|
@ -196,16 +199,27 @@
|
|||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="KLineEdit" name="argumentsLineEdit"/>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>Extra arguments</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>CPU cores</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="KIntNumInput" name="CPUInput">
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include <KDebug>
|
||||
#include <QApplication>
|
||||
#include <QMessageBox>
|
||||
#include <QThread>
|
||||
|
||||
#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";
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue