summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiemm/opieexif.cpp54
-rw-r--r--libopie2/opiemm/opieexif.h7
2 files changed, 12 insertions, 49 deletions
diff --git a/libopie2/opiemm/opieexif.cpp b/libopie2/opiemm/opieexif.cpp
index 0860ea8..de49937 100644
--- a/libopie2/opiemm/opieexif.cpp
+++ b/libopie2/opiemm/opieexif.cpp
@@ -272,17 +272,16 @@ int ExifData::ReadJpegSections (QFile & infile, ReadMode_t ReadMode)
272 default: 272 default:
273 break; 273 break;
274 break; 274 break;
275 } 275 }
276 } 276 }
277 return true; 277 return true;
278} 278}
279 279
280
281//-------------------------------------------------------------------------- 280//--------------------------------------------------------------------------
282// Discard read data. 281// Discard read data.
283//-------------------------------------------------------------------------- 282//--------------------------------------------------------------------------
284void ExifData::DiscardData(void) 283void ExifData::DiscardData(void)
285{ 284{
286 for (int a=0; a < SectionsRead; a++) 285 for (int a=0; a < SectionsRead; a++)
287 free(Sections[a].Data); 286 free(Sections[a].Data);
288 SectionsRead = 0; 287 SectionsRead = 0;
@@ -1004,22 +1003,21 @@ static QImage rotate_270_all( const QImage& img ) {
1004 1003
1005static QImage rotate_270( const QImage& img ) { 1004static QImage rotate_270( const QImage& img ) {
1006 if ( img.depth() > 8 ) 1005 if ( img.depth() > 8 )
1007 return rotate_270_all( img ); 1006 return rotate_270_all( img );
1008 else 1007 else
1009 return rotate_270_8( img ); 1008 return rotate_270_8( img );
1010} 1009}
1011 1010
1012 1011QString ExifData::color_mode_to_string( bool b ) {
1013static QString color_mode_to_string( bool b ) {
1014 return b ? QObject::tr( "Colormode: Color\n" ) : QObject::tr( "Colormode: Black and white\n" ); 1012 return b ? QObject::tr( "Colormode: Color\n" ) : QObject::tr( "Colormode: Black and white\n" );
1015} 1013}
1016 1014
1017static QString compression_to_string( int level ) { 1015QString ExifData::compression_to_string( int level ) {
1018 QString str; 1016 QString str;
1019 switch( level ) { 1017 switch( level ) {
1020 case 1: 1018 case 1:
1021 str = QObject::tr( "Basic" ); 1019 str = QObject::tr( "Basic" );
1022 break; 1020 break;
1023 case 2: 1021 case 2:
1024 str = QObject::tr( "Normal" ); 1022 str = QObject::tr( "Normal" );
1025 break; 1023 break;
@@ -1028,59 +1026,17 @@ static QString compression_to_string( int level ) {
1028 break; 1026 break;
1029 default: 1027 default:
1030 str = QObject::tr( "Unknown" ); 1028 str = QObject::tr( "Unknown" );
1031 1029
1032 } 1030 }
1033 return QObject::tr("Quality: %1\n").arg(str); 1031 return QObject::tr("Quality: %1\n").arg(str);
1034} 1032}
1035 1033
1036 1034QString ExifData::white_balance_string( int i ) {
1037static QDateTime parseDateTime( const QString& string )
1038{
1039 QDateTime dt;
1040 if ( string.length() != 19 )
1041 return dt;
1042
1043 QString year = string.left( 4 );
1044 QString month = string.mid( 5, 2 );
1045 QString day = string.mid( 8, 2 );
1046 QString hour = string.mid( 11, 2 );
1047 QString minute = string.mid( 14, 2 );
1048 QString seconds = string.mid( 18, 2 );
1049
1050 bool ok;
1051 bool allOk = true;
1052 int y = year.toInt( &ok );
1053 allOk &= ok;
1054
1055 int mo = month.toInt( &ok );
1056 allOk &= ok;
1057
1058 int d = day.toInt( &ok );
1059 allOk &= ok;
1060
1061 int h = hour.toInt( &ok );
1062 allOk &= ok;
1063
1064 int mi = minute.toInt( &ok );
1065 allOk &= ok;
1066
1067 int s = seconds.toInt( &ok );
1068 allOk &= ok;
1069
1070 if ( allOk ) {
1071 dt.setDate( QDate( y, mo, d ) );
1072 dt.setTime( QTime( h, mi, s ) );
1073 }
1074
1075 return dt;
1076}
1077
1078static QString white_balance_string( int i ) {
1079 QString balance; 1035 QString balance;
1080 switch ( i ) { 1036 switch ( i ) {
1081 case 0: 1037 case 0:
1082 balance = QObject::tr( "Unknown" ); 1038 balance = QObject::tr( "Unknown" );
1083 break; 1039 break;
1084 case 1: 1040 case 1:
1085 balance = QObject::tr( "Daylight" ); 1041 balance = QObject::tr( "Daylight" );
1086 break; 1042 break;
@@ -1114,17 +1070,17 @@ static QString white_balance_string( int i ) {
1114 default: 1070 default:
1115 balance = QObject::tr( "Unknown" ); 1071 balance = QObject::tr( "Unknown" );
1116 } 1072 }
1117 return QObject::tr( "White Balance: %1\n" ).arg( balance ); 1073 return QObject::tr( "White Balance: %1\n" ).arg( balance );
1118 1074
1119} 1075}
1120 1076
1121 1077
1122static QString metering_mode( int i) { 1078QString ExifData::metering_mode( int i) {
1123 QString meter; 1079 QString meter;
1124 switch( i ) { 1080 switch( i ) {
1125 case 0: 1081 case 0:
1126 meter = QObject::tr( "Unknown" ); 1082 meter = QObject::tr( "Unknown" );
1127 break; 1083 break;
1128 case 1: 1084 case 1:
1129 meter = QObject::tr( "Average" ); 1085 meter = QObject::tr( "Average" );
1130 break; 1086 break;
@@ -1149,17 +1105,17 @@ static QString metering_mode( int i) {
1149 default: 1105 default:
1150 meter = QObject::tr( "Unknown" ); 1106 meter = QObject::tr( "Unknown" );
1151 } 1107 }
1152 1108
1153 return QObject::tr( "Metering Mode: %1\n" ).arg( meter ); 1109 return QObject::tr( "Metering Mode: %1\n" ).arg( meter );
1154} 1110}
1155 1111
1156 1112
1157static QString exposure_program( int i ) { 1113QString ExifData::exposure_program( int i ) {
1158 QString exp; 1114 QString exp;
1159 switch( i ) { 1115 switch( i ) {
1160 case 0: 1116 case 0:
1161 exp = QObject::tr( "Not defined" ); 1117 exp = QObject::tr( "Not defined" );
1162 break; 1118 break;
1163 case 1: 1119 case 1:
1164 exp = QObject::tr( "Manual" ); 1120 exp = QObject::tr( "Manual" );
1165 break; 1121 break;
diff --git a/libopie2/opiemm/opieexif.h b/libopie2/opiemm/opieexif.h
index efaed71..fb06bf8 100644
--- a/libopie2/opiemm/opieexif.h
+++ b/libopie2/opiemm/opieexif.h
@@ -127,13 +127,20 @@ public:
127 int getExposureProgram() { return ExposureProgram; } 127 int getExposureProgram() { return ExposureProgram; }
128 int getISOequivalent() { return ISOequivalent; } 128 int getISOequivalent() { return ISOequivalent; }
129 int getCompressionLevel() { return CompressionLevel; } 129 int getCompressionLevel() { return CompressionLevel; }
130 QString getUserComment() { return UserComment; } 130 QString getUserComment() { return UserComment; }
131 QString getComment() { return Comment; } 131 QString getComment() { return Comment; }
132 QImage getThumbnail(); 132 QImage getThumbnail();
133 bool isThumbnailSane(); 133 bool isThumbnailSane();
134 bool isNullThumbnail() { return !isThumbnailSane(); } 134 bool isNullThumbnail() { return !isThumbnailSane(); }
135
136 // some helpers
137 static QString color_mode_to_string( bool b );
138 static QString compression_to_string( int level );
139 static QString white_balance_string( int i );
140 static QString metering_mode( int i);
141 static QString exposure_program( int i );
135}; 142};
136 143
137} 144}
138} 145}
139#endif 146#endif