Add search /usr/lib/yacreader search path for p7zip shared objects on linux. Prefer this path when .so's are found, fall back to default p7zip when not.

This commit is contained in:
Felix Kauselmann 2015-02-20 12:52:46 +01:00
parent fb13bb1e5f
commit 8992a8681c

View File

@ -2,6 +2,7 @@
#include "extract_delegate.h" #include "extract_delegate.h"
#include <QLibrary> #include <QLibrary>
#include <QFileInfo>
#include <QDebug> #include <QDebug>
#include <QApplication> #include <QApplication>
@ -201,7 +202,16 @@ bool CompressedArchive::loadFunctions()
#if defined Q_OS_MAC #if defined Q_OS_MAC
rarLib = new QLibrary(QApplication::applicationDirPath()+"/utils/Codecs/Rar29"); rarLib = new QLibrary(QApplication::applicationDirPath()+"/utils/Codecs/Rar29");
#else #else
//check if a yacreader specific version of p7zip exists on the system
QFileInfo rarCodec(QString(LIBDIR)+"/yacreader/Codecs/Rar29.so");
if (rarCodec.exists())
{
rarLib = new QLibrary(rarCodec.absoluteFilePath());
}
else
{
rarLib = new QLibrary(QString(LIBDIR)+"/p7zip/Codecs/Rar29.so"); rarLib = new QLibrary(QString(LIBDIR)+"/p7zip/Codecs/Rar29.so");
}
#endif #endif
if(!rarLib->load()) if(!rarLib->load())
{ {
@ -211,7 +221,15 @@ bool CompressedArchive::loadFunctions()
} }
#endif #endif
#if defined Q_OS_UNIX && !defined Q_OS_MAC #if defined Q_OS_UNIX && !defined Q_OS_MAC
QFileInfo sevenzlibrary(QString(LIBDIR)+"/yacreader/7z.so");
if (sevenzlibrary.exists())
{
sevenzLib = new QLibrary(sevenzlibrary.absoluteFilePath());
}
else
{
sevenzLib = new QLibrary(QString(LIBDIR)+"/p7zip/7z.so"); sevenzLib = new QLibrary(QString(LIBDIR)+"/p7zip/7z.so");
}
#else #else
sevenzLib = new QLibrary(QApplication::applicationDirPath()+"/utils/7z"); sevenzLib = new QLibrary(QApplication::applicationDirPath()+"/utils/7z");
#endif #endif