Skip to content
Extraits de code Groupes Projets

Add documents

Fusionnées Kubat a demandé de fusionner vivy-document vers master
3 files
+ 54
13
Comparer les modifications
  • Côte à côte
  • En ligne

Fichiers

+ 22
13
@@ -31,12 +31,17 @@ protected:
@@ -31,12 +31,17 @@ protected:
bool isFileValid(const QString &path) const noexcept
bool isFileValid(const QString &path) const noexcept
{
{
Document *super = reinterpret_cast<Document *>(this);
QFileInfo file(path);
return super->isFileValidImpl(path);
return Document::suffixList.contains(file.suffix());
}
}
public:
public:
static Document *fromFile(const QString &path) noexcept;
static Document *fromFile(const QString &path) noexcept
 
{
 
Document *ret = new Document();
 
ret->initFromPath(path);
 
return ret;
 
}
inline Type getType() const noexcept
inline Type getType() const noexcept
{
{
@@ -51,26 +56,30 @@ public:
@@ -51,26 +56,30 @@ public:
/* Audio document */
/* Audio document */
class AudioDocument final : public CRTPDocument<AudioDocumentType, AudioDocument> {
class AudioDocument final : public CRTPDocument<AudioDocumentType, AudioDocument> {
private:
public:
explicit AudioDocument() = default;
const QStringList &suffixList = Vivy::Utils::audioFileSuffix;
inline bool isFileValidImpl(const QString &path) const noexcept
inline void initFromPath(const QString &path) noexcept
{
{
QFileInfo file(path);
return Vivy::Utils::audioFileSuffix.contains(file.suffix());
}
}
 
 
private:
 
explicit AudioDocument() = default;
 
friend CRTPDocument<AudioDocumentType, AudioDocument>;
};
};
/* Video document */
/* Video document */
class VideoDocument final : public CRTPDocument<VideoDocumentType, VideoDocument> {
class VideoDocument final : public CRTPDocument<VideoDocumentType, VideoDocument> {
private:
public:
explicit VideoDocument() = default;
const QStringList &suffixList = Vivy::Utils::videoFileSuffix;
inline bool isFileValidImpl(const QString &path) const noexcept
inline void initFromPath(const QString &path) noexcept
{
{
QFileInfo file(path);
return Vivy::Utils::videoFileSuffix.contains(file.suffix());
}
}
 
 
private:
 
explicit VideoDocument() noexcept = default;
 
friend CRTPDocument<VideoDocumentType, VideoDocument>;
};
};
#endif // VIVY_CRTP_DOCUMENT_H
#endif // VIVY_CRTP_DOCUMENT_H
Chargement en cours