Use canonical file paths for filenames in model (#275)
This commit is contained in:
+3
-6
@@ -123,7 +123,7 @@ namespace glabels
|
|||||||
newWindow->setModel( model );
|
newWindow->setModel( model );
|
||||||
newWindow->show();
|
newWindow->show();
|
||||||
}
|
}
|
||||||
model::Settings::addToRecentFileList( fileName );
|
model::Settings::addToRecentFileList( model->fileName() );
|
||||||
|
|
||||||
// Save CWD
|
// Save CWD
|
||||||
mCwd = QFileInfo( fileName ).absolutePath();
|
mCwd = QFileInfo( fileName ).absolutePath();
|
||||||
@@ -163,7 +163,7 @@ namespace glabels
|
|||||||
newWindow->setModel( model );
|
newWindow->setModel( model );
|
||||||
newWindow->show();
|
newWindow->show();
|
||||||
}
|
}
|
||||||
model::Settings::addToRecentFileList( fileName );
|
model::Settings::addToRecentFileList( model->fileName() );
|
||||||
|
|
||||||
// Save CWD
|
// Save CWD
|
||||||
mCwd = QFileInfo( fileName ).absolutePath();
|
mCwd = QFileInfo( fileName ).absolutePath();
|
||||||
@@ -198,7 +198,6 @@ namespace glabels
|
|||||||
}
|
}
|
||||||
|
|
||||||
model::XmlLabelCreator::writeFile( window->model(), window->model()->fileName() );
|
model::XmlLabelCreator::writeFile( window->model(), window->model()->fileName() );
|
||||||
window->model()->clearModified();
|
|
||||||
model::Settings::addToRecentFileList( window->model()->fileName() );
|
model::Settings::addToRecentFileList( window->model()->fileName() );
|
||||||
|
|
||||||
// Save CWD
|
// Save CWD
|
||||||
@@ -254,9 +253,7 @@ namespace glabels
|
|||||||
}
|
}
|
||||||
|
|
||||||
model::XmlLabelCreator::writeFile( window->model(), fileName );
|
model::XmlLabelCreator::writeFile( window->model(), fileName );
|
||||||
window->model()->setFileName( fileName );
|
model::Settings::addToRecentFileList( window->model()->fileName() );
|
||||||
window->model()->clearModified();
|
|
||||||
model::Settings::addToRecentFileList( fileName );
|
|
||||||
|
|
||||||
// Save CWD
|
// Save CWD
|
||||||
mCwd = QFileInfo( fileName ).absolutePath();
|
mCwd = QFileInfo( fileName ).absolutePath();
|
||||||
|
|||||||
+3
-1
@@ -23,6 +23,7 @@
|
|||||||
#include "model/FileUtil.h"
|
#include "model/FileUtil.h"
|
||||||
#include "model/Db.h"
|
#include "model/Db.h"
|
||||||
#include "model/Model.h"
|
#include "model/Model.h"
|
||||||
|
#include "model/Settings.h"
|
||||||
#include "model/Version.h"
|
#include "model/Version.h"
|
||||||
#include "model/XmlLabelParser.h"
|
#include "model/XmlLabelParser.h"
|
||||||
|
|
||||||
@@ -116,11 +117,12 @@ int main( int argc, char **argv )
|
|||||||
glabels::model::Model *model = glabels::model::XmlLabelParser::readFile( filename );
|
glabels::model::Model *model = glabels::model::XmlLabelParser::readFile( filename );
|
||||||
if ( model )
|
if ( model )
|
||||||
{
|
{
|
||||||
model->setFileName( filename );
|
|
||||||
auto *newWindow = new glabels::MainWindow();
|
auto *newWindow = new glabels::MainWindow();
|
||||||
newWindow->setModel( model );
|
newWindow->setModel( model );
|
||||||
newWindow->show();
|
newWindow->show();
|
||||||
openedFiles = true;
|
openedFiles = true;
|
||||||
|
|
||||||
|
glabels::model::Settings::addToRecentFileList( model->fileName() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,14 +61,24 @@ namespace glabels
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
model->setFileName( fileName );
|
|
||||||
model->clearModified();
|
|
||||||
|
|
||||||
QDomDocument doc;
|
QDomDocument doc;
|
||||||
createDoc( doc, model );
|
createDoc( doc, model );
|
||||||
|
|
||||||
QByteArray buffer = doc.toByteArray( 2 );
|
QByteArray buffer = doc.toByteArray( 2 );
|
||||||
file.write( buffer.data(), buffer.size() );
|
file.write( buffer.data(), buffer.size() );
|
||||||
|
|
||||||
|
file.close();
|
||||||
|
|
||||||
|
QFileInfo fileInfo( fileName );
|
||||||
|
if ( !fileInfo.exists() )
|
||||||
|
{
|
||||||
|
qWarning() << "Error:" << fileName << "does not exist after writing!";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
auto canonName = fileInfo.canonicalFilePath();
|
||||||
|
|
||||||
|
model->setFileName( canonName );
|
||||||
|
model->clearModified();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -55,11 +55,19 @@ namespace glabels
|
|||||||
Model*
|
Model*
|
||||||
XmlLabelParser::readFile( const QString& fileName )
|
XmlLabelParser::readFile( const QString& fileName )
|
||||||
{
|
{
|
||||||
QFile file( fileName );
|
QFileInfo fileInfo( fileName );
|
||||||
|
if ( !fileInfo.exists() )
|
||||||
|
{
|
||||||
|
qWarning() << fileName << "does not exist!";
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
auto canonName = fileInfo.canonicalFilePath();
|
||||||
|
|
||||||
|
QFile file( canonName );
|
||||||
|
|
||||||
if ( !file.open( QFile::ReadOnly ) )
|
if ( !file.open( QFile::ReadOnly ) )
|
||||||
{
|
{
|
||||||
qWarning() << "Error: Cannot read file" << fileName
|
qWarning() << "Error: Cannot read file" << canonName
|
||||||
<< ":" << file.errorString();
|
<< ":" << file.errorString();
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@@ -71,6 +79,7 @@ namespace glabels
|
|||||||
int errorColumn;
|
int errorColumn;
|
||||||
|
|
||||||
QByteArray rawData = file.readAll();
|
QByteArray rawData = file.readAll();
|
||||||
|
file.close();
|
||||||
if ( ((rawData[0]&0xFF) == 0x1F) && ((rawData[1]&0xFF) == 0x8b) ) // gzip magic number 0x1F, 0x8B
|
if ( ((rawData[0]&0xFF) == 0x1F) && ((rawData[1]&0xFF) == 0x8b) ) // gzip magic number 0x1F, 0x8B
|
||||||
{
|
{
|
||||||
#if HAVE_ZLIB
|
#if HAVE_ZLIB
|
||||||
@@ -105,7 +114,7 @@ namespace glabels
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
return parseRootNode( root, fileName );
|
return parseRootNode( root, canonName );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -498,7 +498,7 @@ void TestXmlLabel::parser_3ReadFile()
|
|||||||
Model* model = XmlLabelParser::readFile( glabelsFileInfo.absoluteFilePath() );
|
Model* model = XmlLabelParser::readFile( glabelsFileInfo.absoluteFilePath() );
|
||||||
QVERIFY( model );
|
QVERIFY( model );
|
||||||
|
|
||||||
QCOMPARE( model->fileName(), glabelsFileInfo.filePath() );
|
QCOMPARE( model->fileName(), glabelsFileInfo.canonicalFilePath() );
|
||||||
|
|
||||||
QCOMPARE( model->tmplate().brand(), QString( "Avery" ) );
|
QCOMPARE( model->tmplate().brand(), QString( "Avery" ) );
|
||||||
QCOMPARE( model->tmplate().part(), QString( "5395" ) );
|
QCOMPARE( model->tmplate().part(), QString( "5395" ) );
|
||||||
|
|||||||
Reference in New Issue
Block a user