1 #include <stdio.h>
2 #include <QtCore/QUrl>
3 #include <QDesktopServices>
4 #include <QWidget>
5 #include <QtCore/QString>
6 #ifdef _WIN32
7 #include <QFile>
8 #endif
9 #ifdef __APPLE__
10 #include <Carbon/Carbon.h>
11 #endif
12 #include <QtGui/QPaintEngine>
13 #include "ADM_default.h"
14 #include "ADM_inttype.h"
15 #include "ADM_files.h"
16 #include "DIA_uiTypes.h"
17 #include "translator.cpp"
18
19 extern QWidget *QuiMainWindows;
20
getUIDescription(char * desc)21 void getUIDescription(char* desc)
22 {
23 sprintf(desc, "Qt (%s)", qVersion());
24 }
UI_GetCurrentUI(void)25 ADM_UI_TYPE UI_GetCurrentUI(void)
26 {
27 return ADM_UI_QT4;
28 }
29
getMainWindowHandles(intptr_t * handle,intptr_t * nativeHandle)30 void getMainWindowHandles(intptr_t *handle, intptr_t *nativeHandle)
31 {
32 *handle = (intptr_t)QuiMainWindows;
33
34 #if defined(__APPLE__) && !defined(ADM_CPU_X86_64)
35 *nativeHandle = (intptr_t)HIViewGetWindow(HIViewRef(QuiMainWindows->winId()));
36 #else
37 *nativeHandle = (intptr_t)QuiMainWindows->winId();
38 #endif
39 }
40
41 extern int paintEngineType;
42
getNativeRendererDesc(int engine)43 const char* getNativeRendererDesc(int engine)
44 {
45 #if 0
46 switch (engine)
47 {
48 case QPaintEngine::X11:
49 return QT_TRANSLATE_NOOP("uisupport","X11");
50 case QPaintEngine::Windows:
51 return QT_TRANSLATE_NOOP("uisupport","MS Windows GDI");
52 case QPaintEngine::CoreGraphics:
53 return QT_TRANSLATE_NOOP("uisupport","Mac OS X Quartz 2D");
54 case QPaintEngine::QuickDraw:
55 return QT_TRANSLATE_NOOP("uisupport","Mac OS X QuickDraw");
56 case QPaintEngine::OpenGL:
57 return QT_TRANSLATE_NOOP("uisupport","OpenGL");
58 #if QT_VERSION >= 0x040400
59 case QPaintEngine::Direct3D:
60 return QT_TRANSLATE_NOOP("uisupport","MS Windows Direct3D");
61 #endif
62 case QPaintEngine::Raster:
63 return QT_TRANSLATE_NOOP("uisupport","Default Raster");
64 }
65 #endif
66 return "Qt";
67 }
68
69 #ifdef _MSC_VER
70 #define FLUSH_LOG_BUFFER fflush(stdout);
71 #else
72 #define FLUSH_LOG_BUFFER
73 #endif
74
GUI_OpenApplicationLog()75 void GUI_OpenApplicationLog()
76 {
77 #ifdef _WIN32
78 FLUSH_LOG_BUFFER
79 QDesktopServices::openUrl(QUrl::fromLocalFile(QString(ADM_getLogDir()) + "admlog.txt"));
80 #else
81 QDesktopServices::openUrl(QUrl::fromLocalFile(QString(ADM_getBaseDir()) + "admlog.txt"));
82 #endif
83 }
84
GUI_OpenApplicationDataFolder()85 void GUI_OpenApplicationDataFolder()
86 {
87 QString baseDir = QString(ADM_getBaseDir());
88 #ifdef _WIN32
89 QString logDir = QString(ADM_getLogDir());
90 if(logDir != baseDir)
91 {
92 QString src = logDir + QString("admlog.txt");
93 QString old = baseDir + QString("admlog_old.txt");
94 bool r = true;
95 if(QFile::exists(old))
96 r = QFile::remove(old);
97 QString dest = baseDir + QString("admlog.txt");
98 if(r && QFile::exists(dest))
99 QFile::copy(dest,old);
100 if(QFile::exists(dest) && !QFile::remove(dest))
101 ADM_warning("Could not delete %s to copy %s there\n",dest.toUtf8().constData(),src.toUtf8().constData());
102 else
103 {
104 FLUSH_LOG_BUFFER
105 if(!QFile::copy(src,dest))
106 ADM_warning("Copying %s to %s failed\n",src.toUtf8().constData(),dest.toUtf8().constData());
107 }
108 }
109 #endif
110 QDesktopServices::openUrl(QUrl::fromLocalFile(baseDir));
111 }
112