summaryrefslogtreecommitdiffstats
path: root/src/backends
diff options
context:
space:
mode:
authorAlexander Golubev <fatzer2@gmail.com>2025-08-04 03:29:51 +0300
committerAlexander Golubev <fatzer2@gmail.com>2025-08-05 02:24:46 +0300
commita6ab7f1c6dcf3076aa5488a790d81f42cbc93b48 (patch)
tree398109d81d95d7b01032abd655fc0340aa91479c /src/backends
parent19201b658c807f6ffa3c9dcaa02c90b38312e2d7 (diff)
downloadkrecipes-master.tar.gz
krecipes-master.zip
Use TQImage rather than TQPixmap in the backend-oriented codeHEADmaster
TQImage is more suitable for i/o operations and long-term storage rather than TQPixmap (which is better for immediate display on the screen). The UI rarely does displays all those photos and does it one-by-one (i.e. there is no big gallery), so there is no significant performance penalty for the use of TQImage. On the contrary this way we should save some memory on allocations associated X11 stuff for pixmaps and loading time when the database contains a lot of photos. Note that there is yet another use of TQPixmap in `htmlexporter` which cannot be replaced because it uses TQPainter, which didn't supported QImage until Qt5. Signed-off-by: Alexander Golubev <fatzer2@gmail.com>
Diffstat (limited to 'src/backends')
-rw-r--r--src/backends/qsqlrecipedb.cpp10
-rw-r--r--src/backends/qsqlrecipedb.h2
2 files changed, 6 insertions, 6 deletions
diff --git a/src/backends/qsqlrecipedb.cpp b/src/backends/qsqlrecipedb.cpp
index ccd4cb8..4074338 100644
--- a/src/backends/qsqlrecipedb.cpp
+++ b/src/backends/qsqlrecipedb.cpp
@@ -518,14 +518,14 @@ void TQSqlRecipeDB::storePhoto( int recipeID, const TQByteArray &data )
query.exec();
}
-void TQSqlRecipeDB::loadPhoto( int recipeID, TQPixmap &photo )
+void TQSqlRecipeDB::loadPhoto( int recipeID, TQImage &photo )
{
TQString command = TQString( "SELECT photo FROM recipes WHERE id=%1;" ).arg( recipeID );
TQSqlQuery query( command, database );
if ( query.isActive() && query.first() ) {
TQCString decodedPic;
- TQPixmap pix;
+ TQImage img;
KCodecs::base64Decode( query.value( 0 ).toCString(), decodedPic );
int len = decodedPic.size();
@@ -533,9 +533,9 @@ void TQSqlRecipeDB::loadPhoto( int recipeID, TQPixmap &photo )
TQByteArray picData( len );
memcpy( picData.data(), decodedPic.data(), len );
- bool ok = pix.loadFromData( picData, "JPEG" );
+ bool ok = img.loadFromData( picData, "JPEG" );
if ( ok )
- photo = pix;
+ photo = img;
}
}
}
@@ -624,7 +624,7 @@ void TQSqlRecipeDB::saveRecipe( Recipe *recipe )
TQBuffer buffer( ba );
buffer.open( IO_WriteOnly );
TQImageIO iio( &buffer, "JPEG" );
- iio.setImage( recipe->photo.convertToImage() );
+ iio.setImage( recipe->photo );
iio.write();
storePhoto( recipeID, ba );
diff --git a/src/backends/qsqlrecipedb.h b/src/backends/qsqlrecipedb.h
index b9211d7..04cac61 100644
--- a/src/backends/qsqlrecipedb.h
+++ b/src/backends/qsqlrecipedb.h
@@ -46,7 +46,7 @@ protected:
virtual void portOldDatabases( float version );
virtual void storePhoto( int recipeID, const TQByteArray &data );
- virtual void loadPhoto( int recipeID, TQPixmap &photo );
+ virtual void loadPhoto( int recipeID, TQImage &photo );
void loadRecipeMetadata( Recipe *recipe );
void search( RecipeList *list, int items, const RecipeSearchParameters & );