From: Mikko Keinänen Date: Tue, 9 Nov 2010 21:22:33 +0000 (+0200) Subject: Experimenting with reading XML dat files. X-Git-Url: http://vcs.maemo.org/git/?a=commitdiff_plain;h=92a6baadfe05019073b2621977cea59e5e170802;p=emufront Experimenting with reading XML dat files. --- diff --git a/src/emufront.pro b/src/emufront.pro index a11a3a5..e78d0ab 100644 --- a/src/emufront.pro +++ b/src/emufront.pro @@ -10,6 +10,7 @@ INCLUDEPATH += . \ db \ dialogs QT += sql +QT += xml # Input @@ -67,7 +68,8 @@ HEADERS += mainwindow.h \ dialogs/emufrontinputdialog.h \ dialogs/emufrontfileobjectdialog.h \ dialogs/browsefilepathdialog.h \ - db/dbconfig.h + db/dbconfig.h \ + utils/datfileutil.h SOURCES += main.cpp \ mainwindow.cpp \ db/databasemanager.cpp \ @@ -123,7 +125,8 @@ SOURCES += main.cpp \ dialogs/emufrontinputdialog.cpp \ dialogs/emufrontfileobjectdialog.cpp \ dialogs/browsefilepathdialog.cpp \ - db/dbconfig.cpp + db/dbconfig.cpp \ + utils/datfileutil.cpp OTHER_FILES += CONFIG += mobility diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 345c2c9..d7c56ed 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -25,6 +25,7 @@ #include "dialogs/mediaimagepathmaindialog.h" #include "dialogs/setupmaindialog.h" #include "dialogs/executablemaindialog.h" +#include "utils/datfileutil.h" #include "db/databasemanager.h" #include "db/dbconfig.h" @@ -91,6 +92,10 @@ void MainWindow::createActions() configTmpDirAction->setStatusTip(tr("Configure directory for temporary files.")); connect(configTmpDirAction, SIGNAL(triggered()), this, SLOT(configureTmpDir())); + manageDatFilesAction = new QAction(tr("&Manage dats"), this); + manageDatFilesAction->setStatusTip(tr("Read dat files to database.")); + connect(manageDatFilesAction, SIGNAL(triggered()), this, SLOT(manageDatFiles())); + exitAction = new QAction(tr("&Exit"), this); exitAction->setShortcut(tr("Ctrl+Q")); exitAction->setStatusTip(tr("Exit EmuFront")); @@ -169,6 +174,12 @@ void MainWindow::configureTmpDir() } } +void MainWindow::manageDatFiles() +{ + DatFileUtil dfu; + dfu.open(); +} + void MainWindow::activateDialog(EmuFrontDialog* dia) const { dia->show(); @@ -188,6 +199,7 @@ void MainWindow::createMenus() configMenu->addAction(configSetupAction); configMenu->addAction(configEmulatorAction); configMenu->addAction(configTmpDirAction); + configMenu->addAction(manageDatFilesAction); helpMenu = menuBar()->addMenu(tr("&Help")); helpMenu->addAction(aboutAction); diff --git a/src/mainwindow.h b/src/mainwindow.h index 1b9ca0b..c694ba5 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -33,6 +33,7 @@ class QLabel; class DatabaseManager; class EmuFrontDialog; class EmuLauncher; +class DatFileUtil; class MainWindow : public QMainWindow { @@ -53,6 +54,7 @@ private slots: void configureEmulators(); void configureTmpDir(); void updateData(); + void manageDatFiles(); void about(); private: @@ -83,6 +85,7 @@ private: QAction *exitAction; QAction *aboutAction; QAction *configTmpDirAction; + QAction *manageDatFilesAction; QLabel *messageLabel; DatabaseManager *dbManager; EmuLauncher *launcher; diff --git a/src/utils/datfileutil.cpp b/src/utils/datfileutil.cpp new file mode 100644 index 0000000..bab1269 --- /dev/null +++ b/src/utils/datfileutil.cpp @@ -0,0 +1,34 @@ +#include "datfileutil.h" +#include + +DatFileUtil::DatFileUtil(QWidget *parent) : + QWidget(parent) +{ +} + +void DatFileUtil::open() +{ + QString fileName = QFileDialog::getOpenFileName(this, tr("Open Dat File"), + QDir::currentPath(), tr("XML Dat Files (*.xml)")); + if (fileName.isEmpty()) return; + + QDomDocument doc("datFile"); + QFile file(fileName); + if (!file.open(QIODevice::ReadOnly)) + return; + if (!doc.setContent(&file)) { + file.close(); + return; + } + file.close(); + + QDomElement docElem = doc.documentElement(); + QDomNode n = docElem.firstChild(); + while(!n.isNull()) { + QDomElement e = n.toElement(); // try to convert the node to an element. + if(!e.isNull()) { + qDebug() << qPrintable(e.tagName()) << endl; // the node really is an element. + } + n = n.nextSibling(); + } +} diff --git a/src/utils/datfileutil.h b/src/utils/datfileutil.h new file mode 100644 index 0000000..73238ee --- /dev/null +++ b/src/utils/datfileutil.h @@ -0,0 +1,22 @@ +#ifndef DATFILEUTIL_H +#define DATFILEUTIL_H + +#include +#include + +class DatFileUtil : public QWidget +{ + Q_OBJECT +public: + explicit DatFileUtil(QWidget *parent = 0); + void open(); + +signals: + +public slots: + +private: + +}; + +#endif // DATFILEUTIL_H