summaryrefslogtreecommitdiff
path: root/utils/wpseditor/gui/src
diff options
context:
space:
mode:
Diffstat (limited to 'utils/wpseditor/gui/src')
-rw-r--r--utils/wpseditor/gui/src/qwpsdrawer.cpp27
-rw-r--r--utils/wpseditor/gui/src/qwpsdrawer.h8
2 files changed, 26 insertions, 9 deletions
diff --git a/utils/wpseditor/gui/src/qwpsdrawer.cpp b/utils/wpseditor/gui/src/qwpsdrawer.cpp
index a506d5c03b..096d835491 100644
--- a/utils/wpseditor/gui/src/qwpsdrawer.cpp
+++ b/utils/wpseditor/gui/src/qwpsdrawer.cpp
@@ -17,14 +17,14 @@ QImage QWpsDrawer::backdrop;
17proxy_api QWpsDrawer::api; 17proxy_api QWpsDrawer::api;
18 18
19QWpsDrawer::QWpsDrawer( QWpsState *ws,QTrackState *ms, QWidget *parent ) 19QWpsDrawer::QWpsDrawer( QWpsState *ws,QTrackState *ms, QWidget *parent )
20 : QWidget(parent),wpsState(ws),trackState(ms),showGrid(false),mCurTarget("h10_5gb") { 20 : QWidget(parent),wpsState(ws),trackState(ms),showGrid(false),mCurTarget(qApp->applicationDirPath()+"/libwps_IRIVER_H10_5GB") {
21 21
22 tryResolve(); 22 tryResolve();
23 newTempWps(); 23 newTempWps();
24} 24}
25 25
26bool QWpsDrawer::tryResolve() { 26bool QWpsDrawer::tryResolve() {
27 QLibrary lib(qApp->applicationDirPath()+"/libwps_"+mCurTarget); 27 QLibrary lib(mCurTarget);
28 lib_wps_init = (pfwps_init)lib.resolve("wps_init"); 28 lib_wps_init = (pfwps_init)lib.resolve("wps_init");
29 lib_wps_display = (pfwps_display)lib.resolve("wps_display"); 29 lib_wps_display = (pfwps_display)lib.resolve("wps_display");
30 lib_wps_refresh = (pfwps_refresh)lib.resolve("wps_refresh"); 30 lib_wps_refresh = (pfwps_refresh)lib.resolve("wps_refresh");
@@ -47,7 +47,7 @@ bool QWpsDrawer::tryResolve() {
47 api.load_wps_backdrop = &QWpsDrawer::load_wps_backdrop; 47 api.load_wps_backdrop = &QWpsDrawer::load_wps_backdrop;
48 api.read_bmp_file = &QWpsDrawer::read_bmp_file; 48 api.read_bmp_file = &QWpsDrawer::read_bmp_file;
49 api.debugf = &qlogger; 49 api.debugf = &qlogger;
50 qDebug()<<(qApp->applicationDirPath()+"/libwps_"+mCurTarget+" resolved"); 50 qDebug()<<(mCurTarget+" resolved");
51 } 51 }
52 return mResolved; 52 return mResolved;
53} 53}
@@ -222,7 +222,7 @@ QString QWpsDrawer::getModelName(QString libraryName) {
222QList<QString> QWpsDrawer::getTargets() { 222QList<QString> QWpsDrawer::getTargets() {
223 QList<QString> list ; 223 QList<QString> list ;
224 QDir d = QDir(qApp->applicationDirPath()); 224 QDir d = QDir(qApp->applicationDirPath());
225 QFileInfoList libs = d.entryInfoList(QStringList("libwps*")); 225 QFileInfoList libs = d.entryInfoList(QStringList("libwps_*"));
226 qDebug() << libs.size()<<"libs found"; 226 qDebug() << libs.size()<<"libs found";
227 for (int i = 0; i < libs.size(); i++) { 227 for (int i = 0; i < libs.size(); i++) {
228 QString modelName = getModelName(libs[i].absoluteFilePath()); 228 QString modelName = getModelName(libs[i].absoluteFilePath());
@@ -230,15 +230,24 @@ QList<QString> QWpsDrawer::getTargets() {
230 if (modelName == "unknown") 230 if (modelName == "unknown")
231 continue; 231 continue;
232 list.append(modelName); 232 list.append(modelName);
233 libs_array[i].target_name = modelName;
234 libs_array[i].lib = libs[i].absoluteFilePath();
233 } 235 }
234 return list; 236 return list;
235} 237}
236bool QWpsDrawer::setTarget(QString target) { 238bool QWpsDrawer::setTarget(QString target) {
237 QLibrary lib(qApp->applicationDirPath()+"/libwps_"+mCurTarget); 239 foreach(lib_t cur_lib, libs_array)
238 //lib.unload(); 240 {
239 if (getModelName("libwps_"+target)!="unknown") { 241 if(cur_lib.target_name == target)
240 mCurTarget = target; 242 {
241 return tryResolve(); 243 QLibrary lib(cur_lib.lib);
244 //lib.unload();
245 if (getModelName(cur_lib.lib) != "unknown")
246 {
247 mCurTarget = cur_lib.lib;
248 return tryResolve();
249 }
250 }
242 } 251 }
243 return false; 252 return false;
244} 253}
diff --git a/utils/wpseditor/gui/src/qwpsdrawer.h b/utils/wpseditor/gui/src/qwpsdrawer.h
index 65e98723f5..eec4300286 100644
--- a/utils/wpseditor/gui/src/qwpsdrawer.h
+++ b/utils/wpseditor/gui/src/qwpsdrawer.h
@@ -5,6 +5,7 @@
5#include <QPixmap> 5#include <QPixmap>
6#include <QPointer> 6#include <QPointer>
7#include <QTemporaryFile> 7#include <QTemporaryFile>
8#include <QMap>
8 9
9#include "wpsstate.h" 10#include "wpsstate.h"
10 11
@@ -37,6 +38,13 @@ class QWpsDrawer : public QWidget {
37 QString mWpsString; 38 QString mWpsString;
38 QString mCurTarget; 39 QString mCurTarget;
39 static QString mTmpWpsString; 40 static QString mTmpWpsString;
41
42 struct lib_t
43 {
44 QString target_name;
45 QString lib;
46 };
47 QMap<int, lib_t> libs_array;
40 48
41 49
42protected: 50protected: