[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [labplot/gsoc2016_fits] src/backend/datasources: FileInfoDialog improved for FITS files
From: Fabian Kristof <f-kristof () hotmail ! com>
Date: 2016-07-31 18:12:08
Message-ID: E1bTvDc-0000po-Jg () code ! kde ! org
[Download RAW message or body]
Git commit 60a752c0f0d29086c562da100f0abaeb859d5ed3 by Fabian Kristof.
Committed on 31/07/2016 at 18:12.
Pushed by fkristof into branch 'gsoc2016_fits'.
FileInfoDialog improved for FITS files
M +15 -4 src/backend/datasources/FileDataSource.cpp
M +18 -1 src/backend/datasources/filters/FITSFilter.cpp
M +2 -0 src/backend/datasources/filters/FITSFilter.h
M +2 -1 src/backend/datasources/filters/FITSFilterPrivate.h
http://commits.kde.org/labplot/60a752c0f0d29086c562da100f0abaeb859d5ed3
diff --git a/src/backend/datasources/FileDataSource.cpp b/src/backend/datasources/FileDataSource.cpp
index f571c21..b78614c 100644
--- a/src/backend/datasources/FileDataSource.cpp
+++ b/src/backend/datasources/FileDataSource.cpp
@@ -244,10 +244,10 @@ QString FileDataSource::fileInfoString(const QString &name){
QIODevice *file = new QFile(name);
QString fileName;
- if ( name.left(1)!=QDir::separator()){
- fileName=QDir::homePath() + QDir::separator() + name;
- }else{
- fileName=name;
+ if (name.left(1)!=QDir::separator()) {
+ fileName = QDir::homePath() + QDir::separator() + name;
+ } else {
+ fileName = name;
}
if(file==0)
@@ -273,6 +273,17 @@ QString FileDataSource::fileInfoString(const QString &name){
infoStrings << i18n("Group: %1", fileInfo.group());
infoStrings << i18n("Size: %1", i18np("%1 cByte", "%1 cBytes", fileInfo.size()));
+#ifdef HAVE_FITS
+ if (fileName.endsWith(QLatin1String(".fits"))) {
+ FITSFilter* fitsFilter = new FITSFilter;
+
+ infoStrings << i18n("Images: %1", QString::number(fitsFilter->imagesCount(fileName) ));
+ infoStrings << i18n("Tables: %1", QString::number(fitsFilter->tablesCount(fileName) ));
+
+ delete fitsFilter;
+ }
+#endif
+
// file type and type specific information about the file
#ifdef Q_OS_LINUX
QProcess *proc = new QProcess();
diff --git a/src/backend/datasources/filters/FITSFilter.cpp b/src/backend/datasources/filters/FITSFilter.cpp
index 73d6916..04e167e 100644
--- a/src/backend/datasources/filters/FITSFilter.cpp
+++ b/src/backend/datasources/filters/FITSFilter.cpp
@@ -248,6 +248,15 @@ void FITSFilter::setExportTo(const int exportTo) {
d->exportTo = exportTo;
}
+int FITSFilter::imagesCount(const QString &fileName) {
+ return d->imagesCount(fileName);
+}
+
+int FITSFilter::tablesCount(const QString &fileName) {
+ return d->tablesCount(fileName);
+}
+
+
//#####################################################################
//################### Private implementation ##########################
//#####################################################################
@@ -654,7 +663,7 @@ QString FITSFilterPrivate::readCHDU(const QString &fileName, AbstractDataSource
void FITSFilterPrivate::writeCHDU(const QString &fileName, AbstractDataSource *dataSource) {
#ifdef HAVE_FITS
- if (!(fileName.right(4) == QLatin1String("fits"))) {
+ if (!fileName.endsWith(QLatin1String(".fits"))) {
return;
}
int status = 0;
@@ -1635,6 +1644,14 @@ void FITSFilterPrivate::parseExtensions(const QString &fileName, QTreeWidget *tw
#endif
}
+int FITSFilterPrivate::imagesCount(const QString &fileName) {
+ return extensionNames(fileName).values(QLatin1String("IMAGES")).size();
+}
+
+int FITSFilterPrivate::tablesCount(const QString &fileName) {
+ return extensionNames(fileName).values(QLatin1String("TABLES")).size();
+}
+
/*!
* \brief FITSFilterPrivate::~FITSFilterPrivate
*/
diff --git a/src/backend/datasources/filters/FITSFilter.h b/src/backend/datasources/filters/FITSFilter.h
index 32abc02..27a24b7 100644
--- a/src/backend/datasources/filters/FITSFilter.h
+++ b/src/backend/datasources/filters/FITSFilter.h
@@ -74,6 +74,8 @@ class FITSFilter : public AbstractFileFilter {
KeywordUpdate updates;
};
+ int imagesCount(const QString& fileName);
+ int tablesCount(const QString& fileName);
void updateKeywords(const QString& fileName, const QList<Keyword>& originals, const QVector<Keyword>& updates);
void addNewKeyword(const QString& filename, const QList<Keyword> &keywords);
void addKeywordUnit(const QString& fileName, const QList<Keyword> &keywords);
diff --git a/src/backend/datasources/filters/FITSFilterPrivate.h b/src/backend/datasources/filters/FITSFilterPrivate.h
index 27e5bdf..66ae693 100644
--- a/src/backend/datasources/filters/FITSFilterPrivate.h
+++ b/src/backend/datasources/filters/FITSFilterPrivate.h
@@ -49,7 +49,8 @@ public:
void deleteKeyword(const QString &fileName, const QList<FITSFilter::Keyword>& keywords);
void removeExtensions(const QStringList& extensions);
const QString valueOf(const QString &fileName, const char* key);
-
+ int imagesCount(const QString& fileName) ;
+ int tablesCount(const QString& fileName) ;
QList<FITSFilter::Keyword> chduKeywords(const QString &fileName);
void parseHeader(const QString& fileName, QTableWidget* headerEditTable,
bool readKeys = true,
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic