Windows : now saving config file to user's documents.
git-svn-id: http://find-object.googlecode.com/svn/trunk/find_object@18 620bd6b2-0a58-f614-fd9a-1bd335dccda9
This commit is contained in:
parent
8cd2d70954
commit
f2f1ab037a
@ -4,6 +4,7 @@ PROJECT( FindObject )
|
|||||||
SET(PROJECT_PREFIX find_object)
|
SET(PROJECT_PREFIX find_object)
|
||||||
|
|
||||||
ADD_DEFINITIONS(-DPROJECT_PREFIX="${PROJECT_PREFIX}")
|
ADD_DEFINITIONS(-DPROJECT_PREFIX="${PROJECT_PREFIX}")
|
||||||
|
ADD_DEFINITIONS(-DPROJECT_NAME="${PROJECT_NAME}")
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# VERSION
|
# VERSION
|
||||||
|
|||||||
@ -32,12 +32,7 @@ MainWindow::MainWindow(QWidget * parent) :
|
|||||||
connect(&cameraTimer_, SIGNAL(timeout()), this, SLOT(update()));
|
connect(&cameraTimer_, SIGNAL(timeout()), this, SLOT(update()));
|
||||||
|
|
||||||
QByteArray geometry;
|
QByteArray geometry;
|
||||||
#ifdef WIN32
|
Settings::loadSettings(Settings::iniDefaultPath(), &geometry);
|
||||||
//TODO Maybe use the Documents and Settings
|
|
||||||
Settings::loadSettings(Settings::iniDefaultFileName, &geometry);
|
|
||||||
#else
|
|
||||||
Settings::loadSettings(QString("%1/.%2/%3").arg(QDir::homePath()).arg(PROJECT_PREFIX).arg(Settings::iniDefaultFileName), &geometry);
|
|
||||||
#endif
|
|
||||||
this->restoreGeometry(geometry);
|
this->restoreGeometry(geometry);
|
||||||
|
|
||||||
ui_->toolBox->setupUi();
|
ui_->toolBox->setupUi();
|
||||||
@ -78,18 +73,13 @@ MainWindow::~MainWindow()
|
|||||||
|
|
||||||
void MainWindow::closeEvent(QCloseEvent * event)
|
void MainWindow::closeEvent(QCloseEvent * event)
|
||||||
{
|
{
|
||||||
#ifdef WIN32
|
Settings::saveSettings(Settings::iniDefaultPath(), this->saveGeometry());
|
||||||
//TODO Maybe use the Documents and Settings
|
|
||||||
Settings::saveSettings(Settings::iniDefaultFileName, this->saveGeometry());
|
|
||||||
#else
|
|
||||||
Settings::saveSettings(QString("%1/.%2/%3").arg(QDir::homePath()).arg(PROJECT_PREFIX).arg(Settings::iniDefaultFileName), this->saveGeometry());
|
|
||||||
#endif
|
|
||||||
QMainWindow::closeEvent(event);
|
QMainWindow::closeEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::loadObjects()
|
void MainWindow::loadObjects()
|
||||||
{
|
{
|
||||||
QString fileName = QFileDialog::getOpenFileName(this, tr("Load objects..."), QDir::homePath(), "*.obj");
|
QString fileName = QFileDialog::getOpenFileName(this, tr("Load objects..."), Settings::workingDirectory(), "*.obj");
|
||||||
if(!fileName.isEmpty())
|
if(!fileName.isEmpty())
|
||||||
{
|
{
|
||||||
QFile file(fileName);
|
QFile file(fileName);
|
||||||
@ -123,7 +113,7 @@ void MainWindow::loadObjects()
|
|||||||
}
|
}
|
||||||
void MainWindow::saveObjects()
|
void MainWindow::saveObjects()
|
||||||
{
|
{
|
||||||
QString fileName = QFileDialog::getSaveFileName(this, tr("Save objects..."), (QDir::homePath() + "/") +Settings::currentDetectorType()+Settings::currentDescriptorType()+QString("%1.obj").arg(objects_.size()), "*.obj");
|
QString fileName = QFileDialog::getSaveFileName(this, tr("Save objects..."), (Settings::workingDirectory() + "/") +Settings::currentDetectorType()+Settings::currentDescriptorType()+QString("%1.obj").arg(objects_.size()), "*.obj");
|
||||||
if(!fileName.isEmpty())
|
if(!fileName.isEmpty())
|
||||||
{
|
{
|
||||||
if(!fileName.endsWith(".obj"))
|
if(!fileName.endsWith(".obj"))
|
||||||
|
|||||||
@ -16,6 +16,7 @@
|
|||||||
#include "Object.h"
|
#include "Object.h"
|
||||||
#include "KeypointItem.h"
|
#include "KeypointItem.h"
|
||||||
#include "qtipl.h"
|
#include "qtipl.h"
|
||||||
|
#include "Settings.h"
|
||||||
|
|
||||||
#include <opencv2/highgui/highgui.hpp>
|
#include <opencv2/highgui/highgui.hpp>
|
||||||
|
|
||||||
@ -383,7 +384,7 @@ void Object::contextMenuEvent(QContextMenuEvent * event)
|
|||||||
QString text;
|
QString text;
|
||||||
if(_savedFileName.isEmpty())
|
if(_savedFileName.isEmpty())
|
||||||
{
|
{
|
||||||
_savedFileName=QDir::homePath()+"/figure.png";
|
_savedFileName=Settings::workingDirectory()+"/figure.png";
|
||||||
}
|
}
|
||||||
text = QFileDialog::getSaveFileName(this, tr("Save figure to ..."), _savedFileName, "*.png *.xpm *.jpg *.pdf");
|
text = QFileDialog::getSaveFileName(this, tr("Save figure to ..."), _savedFileName, "*.png *.xpm *.jpg *.pdf");
|
||||||
if(!text.isEmpty())
|
if(!text.isEmpty())
|
||||||
|
|||||||
@ -10,17 +10,40 @@
|
|||||||
#include "Camera.h"
|
#include "Camera.h"
|
||||||
#include <QtCore/QSettings>
|
#include <QtCore/QSettings>
|
||||||
#include <QtCore/QStringList>
|
#include <QtCore/QStringList>
|
||||||
|
#include <QtCore/QDir>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
ParametersMap Settings::defaultParameters_;
|
ParametersMap Settings::defaultParameters_;
|
||||||
ParametersMap Settings::parameters_;
|
ParametersMap Settings::parameters_;
|
||||||
ParametersType Settings::parametersType_;
|
ParametersType Settings::parametersType_;
|
||||||
Settings Settings::dummyInit_;
|
Settings Settings::dummyInit_;
|
||||||
const char * Settings::iniDefaultFileName = "config.ini";
|
|
||||||
|
QString Settings::workingDirectory()
|
||||||
|
{
|
||||||
|
#ifdef WIN32
|
||||||
|
return QString("%1/Documents/%2").arg(QDir::homePath()).arg(PROJECT_NAME);
|
||||||
|
#else
|
||||||
|
return QString("%1").arg(QDir::homePath());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
QString Settings::iniDefaultPath()
|
||||||
|
{
|
||||||
|
#ifdef WIN32
|
||||||
|
return QString("%1/Documents/%2/%3").arg(QDir::homePath()).arg(PROJECT_NAME).arg(Settings::iniDefaultFileName());
|
||||||
|
#else
|
||||||
|
return QString("%1/.%2/%3").arg(QDir::homePath()).arg(PROJECT_PREFIX).arg(Settings::iniDefaultFileName());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void Settings::loadSettings(const QString & fileName, QByteArray * windowGeometry)
|
void Settings::loadSettings(const QString & fileName, QByteArray * windowGeometry)
|
||||||
{
|
{
|
||||||
QSettings ini(fileName, QSettings::IniFormat);
|
QString path = fileName;
|
||||||
|
if(fileName.isEmpty())
|
||||||
|
{
|
||||||
|
path = iniDefaultPath();
|
||||||
|
}
|
||||||
|
QSettings ini(path, QSettings::IniFormat);
|
||||||
for(ParametersMap::const_iterator iter = defaultParameters_.begin(); iter!=defaultParameters_.end(); ++iter)
|
for(ParametersMap::const_iterator iter = defaultParameters_.begin(); iter!=defaultParameters_.end(); ++iter)
|
||||||
{
|
{
|
||||||
const QString & key = iter.key();
|
const QString & key = iter.key();
|
||||||
@ -40,12 +63,17 @@ void Settings::loadSettings(const QString & fileName, QByteArray * windowGeometr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("Settings loaded from %s\n", fileName.toStdString().c_str());
|
printf("Settings loaded from %s\n", path.toStdString().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Settings::saveSettings(const QString & fileName, const QByteArray & windowGeometry)
|
void Settings::saveSettings(const QString & fileName, const QByteArray & windowGeometry)
|
||||||
{
|
{
|
||||||
QSettings ini(fileName, QSettings::IniFormat);
|
QString path = fileName;
|
||||||
|
if(fileName.isEmpty())
|
||||||
|
{
|
||||||
|
path = iniDefaultPath();
|
||||||
|
}
|
||||||
|
QSettings ini(path, QSettings::IniFormat);
|
||||||
for(ParametersMap::const_iterator iter = parameters_.begin(); iter!=parameters_.end(); ++iter)
|
for(ParametersMap::const_iterator iter = parameters_.begin(); iter!=parameters_.end(); ++iter)
|
||||||
{
|
{
|
||||||
QString type = Settings::getParametersType().value(iter.key());
|
QString type = Settings::getParametersType().value(iter.key());
|
||||||
@ -62,7 +90,7 @@ void Settings::saveSettings(const QString & fileName, const QByteArray & windowG
|
|||||||
{
|
{
|
||||||
ini.setValue("windowGeometry", windowGeometry);
|
ini.setValue("windowGeometry", windowGeometry);
|
||||||
}
|
}
|
||||||
printf("Settings saved to %s\n", fileName.toStdString().c_str());
|
printf("Settings saved to %s\n", path.toStdString().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
cv::FeatureDetector * Settings::createFeaturesDetector()
|
cv::FeatureDetector * Settings::createFeaturesDetector()
|
||||||
|
|||||||
@ -116,10 +116,12 @@ class Settings
|
|||||||
public:
|
public:
|
||||||
virtual ~Settings(){}
|
virtual ~Settings(){}
|
||||||
|
|
||||||
static const char * iniDefaultFileName; // "config.ini"
|
static QString workingDirectory();
|
||||||
|
static QString iniDefaultPath();
|
||||||
|
static QString iniDefaultFileName() {return "config.ini";}
|
||||||
|
|
||||||
static void loadSettings(const QString & fileName = iniDefaultFileName, QByteArray * windowGeometry = 0);
|
static void loadSettings(const QString & fileName = QString(), QByteArray * windowGeometry = 0);
|
||||||
static void saveSettings(const QString & fileName = iniDefaultFileName, const QByteArray & windowGeometry = QByteArray());
|
static void saveSettings(const QString & fileName = QString(), const QByteArray & windowGeometry = QByteArray());
|
||||||
|
|
||||||
static const ParametersMap & getDefaultParameters() {return defaultParameters_;}
|
static const ParametersMap & getDefaultParameters() {return defaultParameters_;}
|
||||||
static const ParametersMap & getParameters() {return parameters_;}
|
static const ParametersMap & getParameters() {return parameters_;}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user