Skip to content

Commit

Permalink
Fix for #980 - remove dialogs after loading and saving styles
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@8741 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
timlinux committed Jul 8, 2008
1 parent 441758c commit 3a2a9b9
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 47 deletions.
50 changes: 34 additions & 16 deletions src/app/qgsrasterlayerproperties.cpp
Expand Up @@ -2866,12 +2866,17 @@ void QgsRasterLayerProperties::on_pbnLoadDefaultStyle_clicked()
//reset if the default style was loaded ok only
if ( defaultLoadedFlag )
{
//it worked so do it quietly
sync();
}
QMessageBox::information( this,
tr("Default Style"),
myMessage
);
else
{
//otherwise let the user know what went wrong
QMessageBox::information( this,
tr("Default Style"),
myMessage
);
}
}

void QgsRasterLayerProperties::on_pbnSaveDefaultStyle_clicked()
Expand All @@ -2881,10 +2886,14 @@ void QgsRasterLayerProperties::on_pbnSaveDefaultStyle_clicked()
// after calling this the above flag will be set true for success
// or false if the save operation failed
QString myMessage = mRasterLayer->saveDefaultStyle( defaultSavedFlag );
QMessageBox::information( this,
tr("Default Style"),
myMessage
);
if ( !defaultSavedFlag )
{
//let the user know what went wrong
QMessageBox::information( this,
tr("Default Style"),
myMessage
);
}
}


Expand Down Expand Up @@ -2933,10 +2942,14 @@ void QgsRasterLayerProperties::on_pbnLoadStyle_clicked()
{
sync();
}
QMessageBox::information( this,
tr("Default Style"),
myMessage
);
else
{
//let the user know something went wrong...
QMessageBox::information( this,
tr("Saved Style"),
myMessage
);
}
}
else
{
Expand Down Expand Up @@ -2993,12 +3006,17 @@ void QgsRasterLayerProperties::on_pbnSaveStyleAs_clicked()
//reset if the default style was loaded ok only
if ( defaultLoadedFlag )
{
//dont show the message if all went well...
sync();
}
QMessageBox::information( this,
tr("Default Style"),
myMessage
);
else
{
//if something went wrong let the user know why
QMessageBox::information( this,
tr("Saved Style"),
myMessage
);
}
}
else
{
Expand Down
49 changes: 33 additions & 16 deletions src/app/qgsvectorlayerproperties.cpp
Expand Up @@ -629,12 +629,17 @@ void QgsVectorLayerProperties::on_pbnLoadDefaultStyle_clicked()
//reset if the default style was loaded ok only
if ( defaultLoadedFlag )
{
// all worked ok so no need to inform user
reset ();
}
QMessageBox::information( this,
tr("Default Style"),
myMessage
);
else
{
//something went wrong - let them know why
QMessageBox::information( this,
tr("Default Style"),
myMessage
);
}
}

void QgsVectorLayerProperties::on_pbnSaveDefaultStyle_clicked()
Expand All @@ -646,10 +651,14 @@ void QgsVectorLayerProperties::on_pbnSaveDefaultStyle_clicked()
// after calling this the above flag will be set true for success
// or false if the save operation failed
QString myMessage = layer->saveDefaultStyle( defaultSavedFlag );
QMessageBox::information( this,
tr("Default Style"),
myMessage
);
if ( !defaultSavedFlag )
{
//only raise the message if something went wrong
QMessageBox::information( this,
tr("Default Style"),
myMessage
);
}
}


Expand Down Expand Up @@ -698,10 +707,14 @@ void QgsVectorLayerProperties::on_pbnLoadStyle_clicked()
{
reset ();
}
QMessageBox::information( this,
tr("Default Style"),
myMessage
);
else
{
//let the user know what went wrong
QMessageBox::information( this,
tr("Saved Style"),
myMessage
);
}
}
else
{
Expand Down Expand Up @@ -762,10 +775,14 @@ void QgsVectorLayerProperties::on_pbnSaveStyleAs_clicked()
{
reset ();
}
QMessageBox::information( this,
tr("Default Style"),
myMessage
);
else
{
//let the user know what went wrong
QMessageBox::information( this,
tr("Saved Style"),
myMessage
);
}
}
else
{
Expand Down
39 changes: 24 additions & 15 deletions src/core/qgsmaplayer.cpp
Expand Up @@ -446,7 +446,7 @@ QString QgsMapLayer::loadNamedStyle ( const QString theURI , bool & theResultFla
sqlite3_stmt *myPreparedStatement;
const char *myTail;
int myResult;

myResult = sqlite3_open(QgsApplication::qgisUserDbFilePath().toUtf8().data(), &myDatabase);
if (myResult)
{
Expand All @@ -464,8 +464,10 @@ QString QgsMapLayer::loadNamedStyle ( const QString theURI , bool & theResultFla
{
QString qml = QString::fromUtf8( (char *)sqlite3_column_text(myPreparedStatement, 0) );
theResultFlag = myDocument.setContent ( qml, &myErrorMessage, &line, &column );
if(!theResultFlag)
myErrorMessage = tr("%1 at line %2 column %3").arg( myErrorMessage ).arg( line ).arg(column);
if(!theResultFlag)
{
myErrorMessage = tr("%1 at line %2 column %3").arg( myErrorMessage ).arg( line ).arg(column);
}
}
}
else
Expand All @@ -479,21 +481,24 @@ QString QgsMapLayer::loadNamedStyle ( const QString theURI , bool & theResultFla
}

if(!theResultFlag)
{
return myErrorMessage;

}
// now get the layer node out and pass it over to the layer
// to deserialise...
QDomElement myRoot = myDocument.firstChildElement("qgis");
if (myRoot.isNull())
{
myErrorMessage = "Error: qgis element could not be found in " + theURI;
theResultFlag = false;
return myErrorMessage;
}

QDomElement myLayer = myRoot.firstChildElement("maplayer");
if (myLayer.isNull())
{
myErrorMessage = "Error: maplayer element could not be found in " + theURI;
theResultFlag = false;
return myErrorMessage;
}

Expand All @@ -505,6 +510,7 @@ QString QgsMapLayer::loadNamedStyle ( const QString theURI , bool & theResultFla
if (myDataSource.isNull())
{
myErrorMessage = "Error: datasource element could not be found in " + theURI;
theResultFlag = false;
return myErrorMessage;
}
QDomElement myNewDataSource = myDocument.createElement( "datasource" );
Expand Down Expand Up @@ -562,23 +568,25 @@ QString QgsMapLayer::saveNamedStyle ( const QString theURI, bool & theResultFlag
// save as utf-8 with 2 spaces for indents
myDocument.save( myFileStream, 2 );
myFile.close();
theResultFlag = true;
return QObject::tr( "Created default style file as " ) + myFileName;
}
else
{
theResultFlag = false;
return QObject::tr( "ERROR: Failed to created default style file as %1 Check file permissions and retry." ).arg(myFileName);
}
}
else
{
QString qml = myDocument.toString();

// read from database
sqlite3 *myDatabase;
sqlite3_stmt *myPreparedStatement;
const char *myTail;
int myResult;

myResult = sqlite3_open(QgsApplication::qgisUserDbFilePath().toUtf8().data(), &myDatabase);
if (myResult)
{
Expand All @@ -595,7 +603,8 @@ QString QgsMapLayer::saveNamedStyle ( const QString theURI, bool & theResultFlag
if( sqlite3_step(myPreparedStatement)!=SQLITE_DONE )
{
sqlite3_finalize(myPreparedStatement);
sqlite3_close(myDatabase);
sqlite3_close(myDatabase);
theResultFlag = false;
return tr("The style table could not be created.");
}
}
Expand All @@ -611,7 +620,7 @@ QString QgsMapLayer::saveNamedStyle ( const QString theURI, bool & theResultFlag
sqlite3_step(myPreparedStatement)==SQLITE_DONE )
{
theResultFlag = true;
myErrorMessage = tr("The style %1 was saved to database").arg(theURI);
myErrorMessage = tr("The style %1 was saved to database").arg(theURI);
}
}

Expand All @@ -628,13 +637,13 @@ QString QgsMapLayer::saveNamedStyle ( const QString theURI, bool & theResultFlag
sqlite3_step(myPreparedStatement)==SQLITE_DONE )
{
theResultFlag = true;
myErrorMessage = tr("The style %1 was updated in the database.").arg(theURI);
myErrorMessage = tr("The style %1 was updated in the database.").arg(theURI);
}
else
{
theResultFlag = false;
myErrorMessage = tr("The style %1 could not be updated in the database.").arg(theURI);
}
else
{
theResultFlag = true;
myErrorMessage = tr("The style %1 could not be updated in the database.").arg(theURI);
}
}
else
{
Expand All @@ -645,7 +654,7 @@ QString QgsMapLayer::saveNamedStyle ( const QString theURI, bool & theResultFlag

sqlite3_finalize(myPreparedStatement);
}

sqlite3_close(myDatabase);
}

Expand Down

0 comments on commit 3a2a9b9

Please sign in to comment.