|
@@ -18,14 +18,15 @@
|
|
|
|
|
|
MainWindow::MainWindow ()
|
|
|
{
|
|
|
+
|
|
|
createActions ();
|
|
|
createMenus ();
|
|
|
|
|
|
- filename = NULL;
|
|
|
+ openedImage = -1;
|
|
|
directoryname = NULL;
|
|
|
- prefix = NULL;
|
|
|
- filenames = new QList< QString* >();
|
|
|
- filenames->clear();
|
|
|
+ suffix = NULL;
|
|
|
+ filenameToSave = NULL;
|
|
|
+ filenames = NULL;
|
|
|
|
|
|
setWindowTitle (tr ("DSL - Draw Strength Line"));
|
|
|
|
|
@@ -44,14 +45,22 @@ MainWindow::MainWindow ()
|
|
|
void
|
|
|
MainWindow::openFile ()
|
|
|
{
|
|
|
- filename = new QString(QFileDialog::getOpenFileName (this,
|
|
|
- QObject::tr ("Open image file"),
|
|
|
- QDir::currentPath (),
|
|
|
- QObject::tr("Images files (*.jpg *.png);;All files (*.*)")));
|
|
|
-
|
|
|
- if(!filename->isEmpty()) {
|
|
|
- QDir::setCurrent(QString(*filename).remove(QUrl(*filename).fileName()));
|
|
|
- wa->loadImage (filename->toStdString ());
|
|
|
+ QString filename = QFileDialog::getOpenFileName (this,
|
|
|
+ QObject::tr ("Open image file"),
|
|
|
+ QDir::currentPath (),
|
|
|
+ QObject::tr("Images files (*.jpg *.png);;All files (*.*)"));
|
|
|
+
|
|
|
+ if(!filename.isEmpty()) {
|
|
|
+ delete filenames;
|
|
|
+ filenames = new QList < QString* >();
|
|
|
+ delete filenameToSave;
|
|
|
+ filenameToSave = NULL;
|
|
|
+ delete suffix;
|
|
|
+ suffix = NULL;
|
|
|
+ filenames->append(new QString(filename));
|
|
|
+ openedImage = 0;
|
|
|
+ QDir::setCurrent(QString(*(filenames->at(openedImage))).remove(QUrl(*(filenames->at(openedImage))).fileName()));
|
|
|
+ wa->loadImage (filenames->at(openedImage)->toStdString ());
|
|
|
wa->repaint();
|
|
|
setFixedSize (wa->geometry().width(), wa->geometry().height()+wa->geometry().y());
|
|
|
}
|
|
@@ -64,63 +73,105 @@ MainWindow::openDir ()
|
|
|
QObject::tr ("Open directory"),
|
|
|
QDir::currentPath (),
|
|
|
QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks));
|
|
|
-
|
|
|
- qDebug() << "Chemin du répertoire : " << *directoryname << Qt::endl;
|
|
|
|
|
|
if(!directoryname->isEmpty()) {
|
|
|
bool ok;
|
|
|
- QString prefix = QInputDialog::getText(this, tr("Prefix for your json files"),
|
|
|
- tr("Prefix to use :"), QLineEdit::Normal,
|
|
|
- QDir::home().dirName()+"_", &ok);
|
|
|
- qDebug() << "Prefix received : " << prefix << Qt::endl;
|
|
|
+ suffix = new QString(QInputDialog::getText(this, tr("Suffix for your json files"),
|
|
|
+ tr("Suffix to use :"), QLineEdit::Normal,
|
|
|
+ "_"+QDir::home().dirName(), &ok));
|
|
|
|
|
|
- filenames->clear();
|
|
|
+ if(ok){
|
|
|
+ delete filenames;
|
|
|
+ filenames = new QList < QString* >();
|
|
|
|
|
|
- QDirIterator it(*directoryname);
|
|
|
- while (it.hasNext()) {
|
|
|
- filenames->append( new QString(it.next()) );
|
|
|
+ QDirIterator it(*directoryname);
|
|
|
+ while (it.hasNext()) {
|
|
|
+ QString next(it.next());
|
|
|
+ if(next.endsWith(".png") || next.endsWith(".jpg"))
|
|
|
+ filenames->append( new QString(next) );
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- for (int i=0 ; i<filenames->size() ; i++)
|
|
|
- qDebug() << *(filenames->at(i)) << Qt::endl;
|
|
|
+ if(filenames->size()>0){
|
|
|
+ delete filenameToSave;
|
|
|
+ filenameToSave = NULL;
|
|
|
+ openedImage = 0;
|
|
|
+ QDir::setCurrent(QString(*(filenames->at(openedImage))).remove(QUrl(*(filenames->at(openedImage))).fileName()));
|
|
|
+ wa->loadImage (filenames->at(openedImage)->toStdString ());
|
|
|
+ wa->repaint();
|
|
|
+ setFixedSize (wa->geometry().width(), wa->geometry().height()+wa->geometry().y());
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
void
|
|
|
MainWindow::save ()
|
|
|
{
|
|
|
- QString fileToSave = QFileDialog::getSaveFileName (this,
|
|
|
- QObject::tr ("Save file"),
|
|
|
- QDir::currentPath ().append("/").append(QFileInfo(*filename).baseName()).append(".json"),
|
|
|
- QObject::tr("JSON file (*.json);;All files (*.*)"));
|
|
|
- if(!fileToSave.endsWith(".json"))
|
|
|
- fileToSave.append(".json");
|
|
|
- wa->saveStrengthLine (fileToSave.toStdString ());
|
|
|
+ if(suffix != NULL){
|
|
|
+ QString toSave = QDir::currentPath ().append("/").append(QFileInfo(*(filenames->at(openedImage))).baseName().append(*suffix).append(".json"));
|
|
|
+ wa->saveStrengthLine (toSave.toStdString ());
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ if(filenameToSave == NULL)
|
|
|
+ filenameToSave = new QString(QFileDialog::getSaveFileName (this,
|
|
|
+ QObject::tr ("Save file"),
|
|
|
+ QDir::currentPath ().append("/").append(QFileInfo(*(filenames->at(openedImage))).baseName()).append(".json"),
|
|
|
+ QObject::tr("JSON file (*.json);;All files (*.*)")));
|
|
|
+ if(filenameToSave != NULL){
|
|
|
+ if(!filenameToSave->endsWith(".json"))
|
|
|
+ filenameToSave->append(".json");
|
|
|
+ wa->saveStrengthLine (filenameToSave->toStdString ());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void
|
|
|
MainWindow::firstImage ()
|
|
|
{
|
|
|
- qDebug() << "First image" << Qt::endl;
|
|
|
+ if(filenames->size() > 1){
|
|
|
+ openedImage = 0;
|
|
|
+ loadImage();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void
|
|
|
MainWindow::previousImage ()
|
|
|
{
|
|
|
- qDebug() << "Previous image" << Qt::endl;
|
|
|
+ if(filenames->size() > 1){
|
|
|
+ openedImage = (openedImage-1+filenames->size())%(filenames->size());
|
|
|
+ loadImage();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void
|
|
|
MainWindow::nextImage ()
|
|
|
{
|
|
|
- qDebug() << "Next image" << Qt::endl;
|
|
|
+ if(filenames->size() > 1){
|
|
|
+ openedImage = (openedImage+1)%(filenames->size());
|
|
|
+ loadImage();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
void
|
|
|
MainWindow::lastImage ()
|
|
|
{
|
|
|
- qDebug() << "Last image" << Qt::endl;
|
|
|
+ if(filenames->size() > 1){
|
|
|
+ openedImage = filenames->size()-1;
|
|
|
+ loadImage();
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void
|
|
|
+MainWindow::loadImage()
|
|
|
+{
|
|
|
+ delete filenameToSave;
|
|
|
+ filenameToSave = NULL;
|
|
|
+ wa->loadImage (filenames->at(openedImage)->toStdString ());
|
|
|
+ wa->repaint();
|
|
|
+ setFixedSize (wa->geometry().width(), wa->geometry().height()+wa->geometry().y());
|
|
|
}
|
|
|
|
|
|
|