QOpenGLContext *qt5GLContext = NULL;
QSurfaceFormat qt5GLFormat;
-MainWindow::MainWindow(UIInformation *uiInfo, QWidget *parent) :
+MainWindow::MainWindow(UiInformation *uiInfo, QWidget *parent) :
QWidget(parent)
{
/* initialize */
/* rotary */
MainForm *form = NULL;
bool needRotary = false;
- for(int i = 0; i < uiInfo->mainFormList.count(); i++) {
- form = uiInfo->mainFormList.at(i);
+ for(int i = 0; i < uiInfo->getMainFormList().count(); i++) {
+ form = uiInfo->getMainFormList().at(i);
if (form->getRotaryImage() != NULL &&
form->getRotaryImage()->isNull() == false) {
needRotary = true;
QGLContext *context = new QGLContext(format);
displayWidget = new DisplayGLWidget(this, context,
- displayForm, uiInfo->resolution, getUiState()->getScaleFactor());
+ displayForm, uiInfo->getResolution(), getUiState()->getScaleFactor());
context->setFormat(format);
context->create(wrapperContext);
swapperThread->start();
} else { /* off-screen rendering */
DisplaySWWidget *widget = new DisplaySWWidget(this,
- displayForm, uiInfo->resolution, getUiState()->getScaleFactor());
+ displayForm, uiInfo->getResolution(), getUiState()->getScaleFactor());
screenWidget = widget;
displayWidget = widget;
}
}
-UIInformation *MainWindow::getUiInfo()
+UiInformation *MainWindow::getUiInfo()
{
return uiInfo;
}
closeController();
- if (uiInfo->conFormList.count() <= index) {
+ if (uiInfo->getConFormList().count() <= index) {
qWarning("controller index out of range");
return;
}
- ControllerForm *conForm = uiInfo->conFormList.at(index);
+ ControllerForm *conForm = uiInfo->getConFormList().at(index);
if (conForm == NULL) {
qWarning("controller is null");
return;
} else {
qDebug("save blank image");
- QPixmap pixmap(uiInfo->resolution.width(), uiInfo->resolution.height());
+ QPixmap pixmap(uiInfo->getResolution().width(), uiInfo->getResolution().height());
QMetaObject::invokeMethod(popupMenu, "slotShowScreenshot",
Qt::QueuedConnection, Q_ARG(QPixmap, pixmap));
}
Q_OBJECT
public:
- explicit MainWindow(UIInformation *uiInfo, QWidget *parent = 0);
+ explicit MainWindow(UiInformation *uiInfo, QWidget *parent = 0);
~MainWindow();
- UIInformation *getUiInfo(void);
+ UiInformation *getUiInfo(void);
UIState *getUiState(void);
const QMatrix &getDisplayMatrix();
MainView *getMainView();
DisplayBase *createDisplay(DisplayType *displayForm);
RotaryView *createRotary();
- UIInformation *uiInfo;
+ UiInformation *uiInfo;
/* windowing */
QMatrix dpyMatrix;
actionForceClose = NULL;
actionClose = NULL;
- vmName = this->parent->getUiInfo()->vmName + " : "
+ vmName = this->parent->getUiInfo()->getVmName() + " : "
+ QString::number(get_device_serial_number());
/* for SDB shell */
/* for close */
longPressTimer = new QTimer(this);
- createItems(this, this->parent->getUiInfo()->menuList);
+ createItems(this, this->parent->getUiInfo()->getMenuList());
installEventFilter(this);
}
return;
}
- QList<MainForm *> mainFormList = parent->getUiInfo()->mainFormList;
+ QList<MainForm *> &mainFormList = parent->getUiInfo()->getMainFormList();
if (mainFormList.isEmpty() == false) {
QString menuName = item->getName();
return;
}
- QList<ControllerForm *> conFormList = parent->getUiInfo()->conFormList;
+ QList<ControllerForm *> &conFormList = parent->getUiInfo()->getConFormList();
if (conFormList.isEmpty() == false) {
QString menuName = item->getName();
}
QAction *action = NULL;
- action = controllerMenu->addAction("None");
+ action = controllerMenu->addAction(GENERIC_TEXT_NONE);
action->setActionGroup(controllerGroup);
action->setCheckable(true);
action->setChecked(true);
return;
}
- QString basePortOpt = "base.port=" + QString::number(parent->getUiInfo()->basePort);
- QString vmNameOpt = "vmname=" + parent->getUiInfo()->vmName;
+ QString basePortOpt =
+ "base.port=" + QString::number(parent->getUiInfo()->getBasePort());
+ QString vmNameOpt = "vmname=" + parent->getUiInfo()->getVmName();
QString vmProfileOpt = "profile=" + QString::fromLocal8Bit(get_profile_name());
QString command;
/* insert table items */
insertTableRow(vmInfo, QString(DETAILED_INFO_VM_NAME),
- win->getUiInfo()->vmName);
+ win->getUiInfo()->getVmName());
insertTableRow(vmInfo, QString(DETAILED_INFO_SKIN_NAME),
- win->getUiInfo()->skinName);
+ win->getUiInfo()->getSkinName());
insertTableRow(vmInfo, QString(DETAILED_INFO_CPU), "x86");
QString::number(get_ram_size() >> 20) + " MiB");
insertTableRow(vmInfo, QString(DETAILED_INFO_DPY_RESOLUTION),
- QString::number(win->getUiInfo()->resolution.width()) + "x" +
- QString::number(win->getUiInfo()->resolution.height()));
+ QString::number(win->getUiInfo()->getResolution().width()) + "x" +
+ QString::number(win->getUiInfo()->getResolution().height()));
insertTableRow(vmInfo, QString(DETAILED_INFO_DPY_DENSITY),
QString::number(get_display_pixel_density()));
removeTableRows(shortcutInfoTable, 0, shortcutInfoTable->rowCount());
/* insert menu shortcut info */
- insertMenuShortcutInfo(win->getUiInfo()->menuList);
+ insertMenuShortcutInfo(win->getUiInfo()->getMenuList());
// TODO: consider getHwKeyShortcutMap()
/* insert HW key shortcut info */
3.0 <<
4.0;
- setWindowTitle(QString(SCREENSHOT_TITLE) + " - " + win->getUiInfo()->vmName +
- " : " + QString::number(get_device_serial_number()));
+ setWindowTitle(QString(SCREENSHOT_TITLE) + " - " +
+ win->getUiInfo()->getVmName() + " : " +
+ QString::number(get_device_serial_number()));
setWindowIcon(QIcon(":/icons/screen_shot.png"));
dialogLayout = new QGridLayout(this);
{
qDebug("save");
- QString vmname = win->getUiInfo()->vmName;
+ QString vmname = win->getUiInfo()->getVmName();
QDateTime currentDateTime = QDateTime::currentDateTime();
QString date = currentDateTime.toString("yyyy-MM-dd-HHmmss");
QString filePath = QDir::homePath() + QDir::separator() + vmname + "-" + date + ".png";
//using namespace std;
void qMessageOutput(QtMsgType, const QMessageLogContext &, const QString &);
-void loadMainFormFromXML(QString, UIInformation *);
-void loadConFormFromXML(QFile *, UIInformation *);
+void loadMainFormFromXML(QString, UiInformation *);
+void loadConFormFromXML(QFile *, UiInformation *);
bool qt5IsOnscreen;
QApplication *qt5App = NULL;
static void (*captureRequestHandler)(void *);
static MainWindow *mainwindow;
-static UIInformation *uiInfo;
+static UiInformation *uiInfo;
class ConFile {
public:
qDebug() << "* working path:" << QDir::currentPath();
qDebug() << "* binary path:" << QCoreApplication::applicationDirPath();
- uiInfo = new UIInformation();
+ uiInfo = new UiInformation();
/* parameter parsing */
// TODO:
- uiInfo->vmName = QString(QString::fromLocal8Bit(get_vm_name())).trimmed();
- qDebug() << "VM name:" << uiInfo->vmName;
+ uiInfo->setVmName(QString(QString::fromLocal8Bit(get_vm_name())).trimmed());
+ qDebug() << "VM name:" << uiInfo->getVmName();
- uiInfo->resolution.setWidth(get_display_resolution_width());
- uiInfo->resolution.setHeight(get_display_resolution_height());
- uiInfo->basePort = get_emul_vm_base_port();
+ uiInfo->setResolution(QSize(
+ get_display_resolution_width(), get_display_resolution_height()));
+ uiInfo->setBasePort(get_emul_vm_base_port());
- uiInfo->vmDataPath = QDir(
- QString::fromLocal8Bit(get_vm_data_path())).canonicalPath();
- if (uiInfo->vmDataPath.endsWith(QDir::separator()) == false) {
- uiInfo->vmDataPath += QDir::separator();
- }
- qDebug() << "VM path:" << uiInfo->vmDataPath;
+ uiInfo->setVmDataPath(QDir(
+ QString::fromLocal8Bit(get_vm_data_path())).canonicalPath());
+ qDebug() << "VM path:" << uiInfo->getVmDataPath();
- uiInfo->skinPath = QDir::toNativeSeparators(
- QString::fromLocal8Bit(get_emul_skin_path()));
- qDebug() << "skin path:" << uiInfo->skinPath;
+ uiInfo->setSkinPath(QDir::toNativeSeparators(
+ QString::fromLocal8Bit(get_emul_skin_path())));
+ qDebug() << "skin path:" << uiInfo->getSkinPath();
/* read skin information */
- QSettings skinInfo(uiInfo->skinPath + QDir::separator() +
- LAYOUT_SKIN_INFO_FILE, QSettings::IniFormat);
+ QSettings skinInfo(uiInfo->getSkinPath() +
+ QDir::separator() + LAYOUT_SKIN_INFO_FILE, QSettings::IniFormat);
QString skinName = skinInfo.value(SKIN_PROPERTY_NAME).toString();
if (skinName.isEmpty() == true) {
skinName = GENERIC_TEXT_UNDEFINED;
}
- uiInfo->skinName = skinName;
+ uiInfo->setSkinName(skinName);
/* open most recently used data information file */
- QFile::remove(uiInfo->vmDataPath + GUI_PROPERTIES_FILE + ".lock");
- const QSettings mruInfo(
- uiInfo->vmDataPath + GUI_PROPERTIES_FILE, QSettings::IniFormat);
+ QFile::remove(uiInfo->getVmDataPath() +
+ QDir::separator() + GUI_PROPERTIES_FILE + ".lock");
+ const QSettings mruInfo(uiInfo->getVmDataPath() +
+ QDir::separator() + GUI_PROPERTIES_FILE, QSettings::IniFormat);
/* XML layout */
/* load main form */
- loadMainFormFromXML(uiInfo->skinPath + QDir::separator() +
- LAYOUT_FORM_FILE_NAME, uiInfo);
+ loadMainFormFromXML(uiInfo->getSkinPath() +
+ QDir::separator() + LAYOUT_FORM_FILE_NAME, uiInfo);
/* load controller forms */
- QDir skinDir(uiInfo->skinPath + QDir::separator() + LAYOUT_CON_FORM_SUBPATH);
+ QDir skinDir(uiInfo->getSkinPath() +
+ QDir::separator() + LAYOUT_CON_FORM_SUBPATH);
QFileInfoList entries = skinDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
if (entries.isEmpty() == false) {
scale = 100;
MenuItem *item = NULL;
- for (int i = 0; i < uiInfo->menuList.count(); i++) {
- item = uiInfo->menuList.at(i);
+ for (int i = 0; i < uiInfo->getMenuList().count(); i++) {
+ item = uiInfo->getMenuList().at(i);
if (item->getType() == MenuItemType::scaleItem) {
ScaleMenuItem *scaleItem = (ScaleMenuItem *)item;
if (scaleItem->getDefaultScaleFactor() > 0) {
int yy = mruInfo.value(SKIN_PROPERTY_WINDOW_Y, defaultValueY).toInt();
if (xx == defaultValueX || yy == defaultValueY) {
- xx = yy = 80 + (uiInfo->basePort % 100); /* default position */
+ xx = yy = 80 + (uiInfo->getBasePort() % 100); /* default position */
} else {
qDebug("previous position: (%d, %d)", xx, yy);
mainwindow->getUiState()->getConState()->setRecentlyDockPos(defaultDockPos);
int conIndex = mruInfo.value(SKIN_PROPERTY_CONTROLLER_INDEX).toInt();
- if (conIndex >= 0 && conIndex < uiInfo->conFormList.count()) {
+ if (conIndex >= 0 && conIndex < uiInfo->getConFormList().count()) {
int conDockPos = mruInfo.value(SKIN_PROPERTY_CONTROLLER_DOCK).toInt();
if (conDockPos <= 0) {
conDockPos = defaultDockPos;
qDebug("qt5 destroy");
/* write most recently used data information */
- QString path(uiInfo->vmDataPath + GUI_PROPERTIES_FILE);
- qDebug() << "save MRU data:" << path;
+ QString mruPath(
+ uiInfo->getVmDataPath() + QDir::separator() + GUI_PROPERTIES_FILE);
+ qDebug() << "save MRU data:" << mruPath;
- QSettings mruInfo(path, QSettings::IniFormat);
+ QSettings mruInfo(mruPath, QSettings::IniFormat);
mruInfo.setValue(SKIN_PROPERTY_WINDOW_X, mainwindow->pos().x());
mruInfo.setValue(SKIN_PROPERTY_WINDOW_Y, mainwindow->pos().y());
mruInfo.setValue(SKIN_PROPERTY_WINDOW_SCALE,
}
}
-void loadMainFormFromXML(QString xmlPath, UIInformation *uiInfo/* out */)
+void loadMainFormFromXML(QString xmlPath, UiInformation *uiInfo/* out */)
{
QFile file(xmlPath);
}
}
-void loadConFormFromXML(QFile *file, UIInformation *uiInfo/* out */)
+void loadConFormFromXML(QFile *file, UiInformation *uiInfo/* out */)
{
if (file->exists() == false ||
file->open(QIODevice::ReadOnly | QIODevice::Text) == false) {
#include "uiinformation.h"
#include "resource/ui_strings.h"
-UIInformation::UIInformation() :
- resolution(0, 0), basePort(0)
+UiInformation::UiInformation() :
+ basePort(0)
{
- vmDataPath = "./";
- skinPath = "./";
+ this->resolution = QSize(0, 0);
+ this->vmDataPath = "./";
+ this->skinPath = "./";
}
-UIState *UIInformation::getUiState()
+void UiInformation::setVmName(QString name) { vmName = name; }
+QString UiInformation::getVmName() { return vmName; }
+
+void UiInformation::setResolution(QSize size) { resolution = size; }
+QSize UiInformation::getResolution() { return resolution; }
+
+void UiInformation::setBasePort(int port) { basePort = port; }
+int UiInformation::getBasePort() { return basePort; }
+
+void UiInformation::setVmDataPath(QString path) { vmDataPath = path; }
+QString UiInformation::getVmDataPath() { return vmDataPath; }
+
+void UiInformation::setSkinPath(QString path) { skinPath = path; }
+QString UiInformation::getSkinPath() { return skinPath; }
+
+void UiInformation::setSkinName(QString name) { skinName = name; }
+QString UiInformation::getSkinName() { return skinName; }
+
+QList<MainForm *> &UiInformation::getMainFormList()
+{
+ return mainFormList;
+}
+
+QList<ControllerForm *> &UiInformation::getConFormList()
+{
+ return conFormList;
+}
+
+QList<MenuItem *> &UiInformation::getMenuList()
+{
+ return menuList;
+}
+
+UIState *UiInformation::getUiState()
{
return &uiState;
}
-QColor UIInformation::getVMColor()
+QColor UiInformation::getVMColor()
{
switch(basePort % 10) {
case 0:
}
/* form */
-MainForm *UIInformation::getMainForm()
+MainForm *UiInformation::getMainForm()
{
int index = uiState.getMainFormIndex();
return mainForm;
}
-DisplayType *UIInformation::getMainFormDpyType()
+DisplayType *UiInformation::getMainFormDpyType()
{
return getMainForm()->getDpyType();
}
-ControllerForm *UIInformation::getConForm()
+ControllerForm *UiInformation::getConForm()
{
int index = uiState.getConState()->getConFormIndex();
}
/* size */
-QSize UIInformation::getMainSize()
+QSize UiInformation::getMainSize()
{
return getMainForm()->
skinImg[LayoutForm::normal].size() * uiState.getScaleFactor();
}
-QSize UIInformation::getConSize()
+QSize UiInformation::getConSize()
{
ControllerForm *conForm = getConForm();
if (conForm == NULL) {
return conForm->skinImg[LayoutForm::normal].size();
}
-QSize UIInformation::getUiSize()
+QSize UiInformation::getUiSize()
{
QSize uiSize = getMainSize();
}
/* region */
-QRegion UIInformation::getMainRegion()
+QRegion UiInformation::getMainRegion()
{
QImage *mainImage = &(getMainForm()->skinImg[LayoutForm::normal]);
QImage regionImage = mainImage->scaled(
return QRegion(QBitmap::fromImage(regionImage));
}
-QRegion UIInformation::getConRegion()
+QRegion UiInformation::getConRegion()
{
ControllerForm *conForm = getConForm();
if (conForm == NULL) {
return QRegion(QBitmap::fromImage(conImage->createAlphaMask()));
}
-QRegion UIInformation::getUiRegion()
+QRegion UiInformation::getUiRegion()
{
QRegion uiRegion = getMainRegion();
return uiRegion;
}
-QRegion UIInformation::getMainKeyRegion(
+QRegion UiInformation::getMainKeyRegion(
QWidget *base, QRect &keyRect, LayoutForm::SkinImgType type)
{
QRegion baseRegion = base->mask().subtracted(QRect(
return baseRegion.united(keyRegion);
}
-QRegion UIInformation::getConKeyRegion(
+QRegion UiInformation::getConKeyRegion(
QWidget *base, QRect &keyRect, LayoutForm::SkinImgType type)
{
if (getConForm() == NULL) {
return baseRegion.united(keyRegion);
}
-UIInformation::~UIInformation()
+UiInformation::~UiInformation()
{
qDebug("destroy UI info");
#include "layout/controllerform.h"
#include "menu/menuitem.h"
-class UIInformation
+class UiInformation
{
public:
- UIInformation();
- ~UIInformation();
+ UiInformation();
+ ~UiInformation();
- QString vmName;
- QSize resolution;
- int basePort;
- QString vmDataPath;
+ void setVmName(QString name);
+ QString getVmName();
+ void setResolution(QSize size);
+ QSize getResolution();
+ void setBasePort(int port);
+ int getBasePort();
+ void setVmDataPath(QString path);
+ QString getVmDataPath();
+ void setSkinPath(QString path);
+ QString getSkinPath();
+ void setSkinName(QString name);
+ QString getSkinName();
- QString skinPath;
- QString skinName;
- QList<MainForm *> mainFormList;
- QList<ControllerForm *> conFormList;
- QList<MenuItem *> menuList;
+ QList<MainForm *> &getMainFormList();
+ QList<ControllerForm *> &getConFormList();
+ QList<MenuItem *> &getMenuList();
UIState *getUiState();
QRegion getConKeyRegion(QWidget *base, QRect &keyRect, LayoutForm::SkinImgType type);
private:
+ QString vmName;
+ QSize resolution;
+ int basePort;
+ QString vmDataPath;
+ QString skinPath;
+ QString skinName;
+
+ QList<MainForm *> mainFormList;
+ QList<ControllerForm *> conFormList;
+ QList<MenuItem *> menuList;
+
UIState uiState; /* runtime information */
};
/* Qt Qlayout has a minimum size */
#define QT_LAYOUT_MINIMUM (73)
-XmlLayoutParser::XmlLayoutParser(QString path, UIInformation *uiInfo)
+XmlLayoutParser::XmlLayoutParser(QString path, UiInformation *uiInfo)
{
this->xmlPath = path;
this->uiInfo = uiInfo;
qDebug("- general purpose skin form");
SkinPainter painter("main-skin",
- uiInfo->resolution, form->getDpyType()->getAngle(),
+ uiInfo->getResolution(), form->getDpyType()->getAngle(),
QPoint(30, 16), uiInfo->getVMColor());
form->setGeneralPurpose(true);
layoutVersion = xml.readElementText();
continue;
} else if (xml.name() == FORMLIST_KEYWORD) {
- int cnt = parseMainFormList(xml, uiInfo->mainFormList);
+ int cnt = parseMainFormList(xml, uiInfo->getMainFormList());
qDebug() << FORMLIST_KEYWORD << ":" << cnt;
} else if (xml.name() == MENULIST_KEYWORD) {
- int cnt = parseMenuList(xml, uiInfo->menuList);
+ int cnt = parseMenuList(xml, uiInfo->getMenuList());
qDebug() << MENULIST_KEYWORD << ":" << cnt;
}
}
form->setCenteralRect(painter.getCenteralRect());
}
- uiInfo->conFormList.append(form);
+ uiInfo->getConFormList().append(form);
}
}
}
class XmlLayoutParser
{
public:
- XmlLayoutParser(QString path, UIInformation *uiInfo /* out */);
+ XmlLayoutParser(QString path, UiInformation *uiInfo /* out */);
QString parseEmulatorUI(QXmlStreamReader &xml);
QString parseControllerUI(QXmlStreamReader &xml);
ControllerForm *parseControllerForm(QXmlStreamReader &xml);
QString xmlPath;
- UIInformation *uiInfo;
+ UiInformation *uiInfo;
};
#endif // XMLLAYOUTPARSER_H