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