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)
|
||||
|
||||
ADD_DEFINITIONS(-DPROJECT_PREFIX="${PROJECT_PREFIX}")
|
||||
ADD_DEFINITIONS(-DPROJECT_NAME="${PROJECT_NAME}")
|
||||
|
||||
#######################
|
||||
# VERSION
|
||||
|
||||
@ -32,12 +32,7 @@ MainWindow::MainWindow(QWidget * parent) :
|
||||
connect(&cameraTimer_, SIGNAL(timeout()), this, SLOT(update()));
|
||||
|
||||
QByteArray geometry;
|
||||
#ifdef WIN32
|
||||
//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
|
||||
Settings::loadSettings(Settings::iniDefaultPath(), &geometry);
|
||||
this->restoreGeometry(geometry);
|
||||
|
||||
ui_->toolBox->setupUi();
|
||||
@ -78,18 +73,13 @@ MainWindow::~MainWindow()
|
||||
|
||||
void MainWindow::closeEvent(QCloseEvent * event)
|
||||
{
|
||||
#ifdef WIN32
|
||||
//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
|
||||
Settings::saveSettings(Settings::iniDefaultPath(), this->saveGeometry());
|
||||
QMainWindow::closeEvent(event);
|
||||
}
|
||||
|
||||
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())
|
||||
{
|
||||
QFile file(fileName);
|
||||
@ -123,7 +113,7 @@ void MainWindow::loadObjects()
|
||||
}
|
||||
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.endsWith(".obj"))
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
#include "Object.h"
|
||||
#include "KeypointItem.h"
|
||||
#include "qtipl.h"
|
||||
#include "Settings.h"
|
||||
|
||||
#include <opencv2/highgui/highgui.hpp>
|
||||
|
||||
@ -383,7 +384,7 @@ void Object::contextMenuEvent(QContextMenuEvent * event)
|
||||
QString text;
|
||||
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");
|
||||
if(!text.isEmpty())
|
||||
|
||||
@ -10,17 +10,40 @@
|
||||
#include "Camera.h"
|
||||
#include <QtCore/QSettings>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QtCore/QDir>
|
||||
#include <stdio.h>
|
||||
|
||||
ParametersMap Settings::defaultParameters_;
|
||||
ParametersMap Settings::parameters_;
|
||||
ParametersType Settings::parametersType_;
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
QString type = Settings::getParametersType().value(iter.key());
|
||||
@ -62,7 +90,7 @@ void Settings::saveSettings(const QString & fileName, const QByteArray & windowG
|
||||
{
|
||||
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()
|
||||
|
||||
@ -116,10 +116,12 @@ class Settings
|
||||
public:
|
||||
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 saveSettings(const QString & fileName = iniDefaultFileName, const QByteArray & windowGeometry = QByteArray());
|
||||
static void loadSettings(const QString & fileName = QString(), QByteArray * windowGeometry = 0);
|
||||
static void saveSettings(const QString & fileName = QString(), const QByteArray & windowGeometry = QByteArray());
|
||||
|
||||
static const ParametersMap & getDefaultParameters() {return defaultParameters_;}
|
||||
static const ParametersMap & getParameters() {return parameters_;}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user