diff options
Diffstat (limited to 'libs/uibase/src/utility.cpp')
| -rw-r--r-- | libs/uibase/src/utility.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/libs/uibase/src/utility.cpp b/libs/uibase/src/utility.cpp index e6811af..94cbc77 100644 --- a/libs/uibase/src/utility.cpp +++ b/libs/uibase/src/utility.cpp @@ -22,7 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA #include <uibase/log.h> #include <uibase/report.h> #ifndef _WIN32 -#include <nak_ffi.h> +#include "iconextractor.h" #endif #include <QApplication> #include <QBuffer> @@ -946,15 +946,12 @@ QIcon iconForExecutable(const QString& filePath) cache.insert(cacheKey, icon); return icon; #else - // Extract icon from PE executable via NaK (pelite-based, no external tools). + // Extract icon from PE executable (native C++ parser, no external tools). QIcon icon; { - const QByteArray pathUtf8 = fi.absoluteFilePath().toUtf8(); - NakIconData icoData = nak_extract_exe_icon(pathUtf8.constData()); - if (icoData.data && icoData.len > 0) { - QByteArray ba(reinterpret_cast<const char*>(icoData.data), - static_cast<qsizetype>(icoData.len)); + QByteArray ba = extractExeIcon(fi.absoluteFilePath()); + if (!ba.isEmpty()) { QBuffer buf(&ba); buf.open(QIODevice::ReadOnly); QImageReader reader(&buf, "ico"); @@ -978,7 +975,6 @@ QIcon iconForExecutable(const QString& filePath) } } } - nak_icon_data_free(icoData); } } |
