diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -69,16 +69,18 @@ glossary/glossary.cpp glossary/glossarywindow.cpp + metadata/filemetadata.cpp + mergemode/mergecatalog.cpp mergemode/mergeview.cpp alttransview.cpp common/diff.cpp project/project.cpp project/projectmodel.cpp project/projectwidget.cpp project/projecttab.cpp - project/poextractor.cpp - project/xliffextractor.cpp + metadata/poextractor.cpp + metadata/xliffextractor.cpp prefs/prefs.cpp diff --git a/src/metadata/filemetadata.h b/src/metadata/filemetadata.h new file mode 100644 --- /dev/null +++ b/src/metadata/filemetadata.h @@ -0,0 +1,56 @@ +/* **************************************************************************** + This file is part of Lokalize + + Copyright (C) 2018 by Karl Ove Hufthammer + Copyright (C) 2007-2014 by Nick Shaforostoff + Copyright (C) 2009 by Viesturs Zarins + Copyright (C) 2018-2019 by Simon Depiets + Copyright (C) 2019 by Alexander Potashev + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +**************************************************************************** */ + +#ifndef LOKALIZE_FILEMETADATA_H +#define LOKALIZE_FILEMETADATA_H + +#include +#include + +struct FileMetaData { + bool invalid_file; + int translated; + int translated_reviewer; + int translated_approver; + int untranslated; + int fuzzy; + int fuzzy_reviewer; + int fuzzy_approver; + + QString lastTranslator; + QString sourceDate; + QString translationDate; + + QString filePath; + + FileMetaData(); +}; + +QDataStream &operator<<(QDataStream &s, const FileMetaData &d); +QDataStream &operator>>(QDataStream &s, FileMetaData &d); + +#endif //LOKALIZE_FILEMETADATA_H diff --git a/src/metadata/filemetadata.cpp b/src/metadata/filemetadata.cpp new file mode 100644 --- /dev/null +++ b/src/metadata/filemetadata.cpp @@ -0,0 +1,89 @@ +/* **************************************************************************** + This file is part of Lokalize + + Copyright (C) 2018 by Karl Ove Hufthammer + Copyright (C) 2007-2014 by Nick Shaforostoff + Copyright (C) 2009 by Viesturs Zarins + Copyright (C) 2018-2019 by Simon Depiets + Copyright (C) 2019 by Alexander Potashev + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License or (at your option) version 3 or any later version + accepted by the membership of KDE e.V. (or its successor approved + by the membership of KDE e.V.), which shall act as a proxy + defined in Section 14 of version 3 of the license. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +**************************************************************************** */ + +#include "filemetadata.h" + +FileMetaData::FileMetaData() + : invalid_file(false) + , translated(0) + , translated_reviewer(0) + , translated_approver(0) + , untranslated(0) + , fuzzy(0) + , fuzzy_reviewer(0) + , fuzzy_approver(0) +{} + +QDataStream &operator<<(QDataStream &s, const FileMetaData &d) +{ + //Magic number + s << (quint32)0xABC42BCA; + //Version + s << (qint32)1; + s << d.translated; + s << d.translated_approver; + s << d.translated_reviewer; + s << d.fuzzy; + s << d.fuzzy_approver; + s << d.fuzzy_reviewer; + s << d.untranslated; + s << d.lastTranslator; + s << d.translationDate; + s << d.sourceDate; + s << d.invalid_file; + return s; +} + +QDataStream &operator>>(QDataStream &s, FileMetaData &d) +{ + //Read the magic number + qint32 version = 0; + quint32 magic; + s >> magic; + if (magic == 0xABC42BCA) { + //This is a valid magic number, we can expect a version number + //Else it's the old format + s >> version; + s >> d.translated; + } else { + //Legacy format, the magic number was actually the translated count + d.translated = magic; + } + s >> d.translated_approver; + s >> d.translated_reviewer; + s >> d.fuzzy; + s >> d.fuzzy_approver; + s >> d.fuzzy_reviewer; + s >> d.untranslated; + s >> d.lastTranslator; + s >> d.translationDate; + s >> d.sourceDate; + if (version >= 1) { + s >> d.invalid_file; + } + return s; +} diff --git a/src/project/poextractor.h b/src/metadata/poextractor.h rename from src/project/poextractor.h rename to src/metadata/poextractor.h --- a/src/project/poextractor.h +++ b/src/metadata/poextractor.h @@ -25,7 +25,7 @@ #ifndef POEXTRACTOR_H #define POEXTRACTOR_H -#include "projectmodel.h" +#include "filemetadata.h" class POExtractor { diff --git a/src/project/poextractor.cpp b/src/metadata/poextractor.cpp rename from src/project/poextractor.cpp rename to src/metadata/poextractor.cpp --- a/src/project/poextractor.cpp +++ b/src/metadata/poextractor.cpp @@ -23,9 +23,11 @@ #include "poextractor.h" -#include + #include +#include + POExtractor::POExtractor() : state(WHITESPACE) , messages(0) diff --git a/src/project/xliffextractor.h b/src/metadata/xliffextractor.h rename from src/project/xliffextractor.h rename to src/metadata/xliffextractor.h --- a/src/project/xliffextractor.h +++ b/src/metadata/xliffextractor.h @@ -24,7 +24,7 @@ #ifndef XLIFFEXTRACTOR_H #define XLIFFEXTRACTOR_H -#include "projectmodel.h" +#include "filemetadata.h" class XliffExtractor { diff --git a/src/project/xliffextractor.cpp b/src/metadata/xliffextractor.cpp rename from src/project/xliffextractor.cpp rename to src/metadata/xliffextractor.cpp --- a/src/project/xliffextractor.cpp +++ b/src/metadata/xliffextractor.cpp @@ -22,12 +22,11 @@ #include "xliffextractor.h" -#include "lokalize_debug.h" - -#include "catalog.h" #include #include -#include + +#include "lokalize_debug.h" +#include "catalog/catalog.h" XliffExtractor::XliffExtractor() { diff --git a/src/project/projectmodel.h b/src/project/projectmodel.h --- a/src/project/projectmodel.h +++ b/src/project/projectmodel.h @@ -35,34 +35,12 @@ #include "project.h" #include "projectlocal.h" +#include "metadata/filemetadata.h" class QTimer; class QThreadPool; class UpdateStatsJob; -struct FileMetaData { - bool invalid_file; - int translated; - int translated_reviewer; - int translated_approver; - int untranslated; - int fuzzy; - int fuzzy_reviewer; - int fuzzy_approver; - - QString lastTranslator; - QString sourceDate; - QString translationDate; - - QString filePath; - - FileMetaData() - : invalid_file(false), translated(0), translated_reviewer(0), translated_approver(0), untranslated(0) - , fuzzy(0), fuzzy_reviewer(0), fuzzy_approver(0) - {} -}; - - /** * Some notes: * Uses two KDirModels for template and translations dir. diff --git a/src/project/projectmodel.cpp b/src/project/projectmodel.cpp --- a/src/project/projectmodel.cpp +++ b/src/project/projectmodel.cpp @@ -29,8 +29,8 @@ #include "lokalize_debug.h" #include "project.h" -#include "poextractor.h" -#include "xliffextractor.h" +#include "metadata/poextractor.h" +#include "metadata/xliffextractor.h" #include #include @@ -1296,55 +1296,6 @@ //queryMain.exec("CREATE INDEX IF NOT EXISTS filepath_index ON metainfo ("filepath)"); } - -QDataStream &operator<<(QDataStream &s, const FileMetaData &d) -{ - //Magic number - s << (quint32)0xABC42BCA; - //Version - s << (qint32)1; - s << d.translated; - s << d.translated_approver; - s << d.translated_reviewer; - s << d.fuzzy; - s << d.fuzzy_approver; - s << d.fuzzy_reviewer; - s << d.untranslated; - s << d.lastTranslator; - s << d.translationDate; - s << d.sourceDate; - s << d.invalid_file; - return s; -} -QDataStream &operator>>(QDataStream &s, FileMetaData &d) -{ - //Read the magic number - qint32 version = 0; - quint32 magic; - s >> magic; - if (magic == 0xABC42BCA) { - //This is a valid magic number, we can expect a version number - //Else it's the old format - s >> version; - s >> d.translated; - } else { - //Legacy format, the magic number was actually the translated count - d.translated = magic; - } - s >> d.translated_approver; - s >> d.translated_reviewer; - s >> d.fuzzy; - s >> d.fuzzy_approver; - s >> d.fuzzy_reviewer; - s >> d.untranslated; - s >> d.lastTranslator; - s >> d.translationDate; - s >> d.sourceDate; - if (version >= 1) { - s >> d.invalid_file; - } - return s; -} #endif static FileMetaData cachedMetaData(const KFileItem& file)