-
Notifications
You must be signed in to change notification settings - Fork 99
Expand file tree
/
Copy pathgnuplot_qt.cpp
More file actions
110 lines (100 loc) · 4.08 KB
/
gnuplot_qt.cpp
File metadata and controls
110 lines (100 loc) · 4.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/* GNUPLOT - gnuplot_qt.cpp */
/*[
* Copyright 2011 Jérôme Lodewyck
*
* Permission to use, copy, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation.
*
* Permission to modify the software is granted, but not the right to
* distribute the complete modified source code. Modifications are to
* be distributed as patches to the released version. Permission to
* distribute binaries produced by compiling modified sources is granted,
* provided you
* 1. distribute the corresponding source modifications from the
* released version in the form of a patch file along with the binaries,
* 2. add special version identification to distinguish your version
* in addition to the base release version number,
* 3. provide your name and address as the primary contact for the
* support of your modified version, and
* 4. retain our contact information in regard to use of the base
* software.
* Permission to distribute the released version of the source code along
* with corresponding source modifications in the form of a patch file is
* granted with same provisions 2 through 4 for binary distributions.
*
* This software is provided "as is" without express or implied warranty
* to the extent permitted by applicable law.
*
*
* Alternatively, the contents of this file may be used under the terms of the
* GNU General Public License Version 2 or later (the "GPL"), in which case the
* provisions of GPL are applicable instead of those above. If you wish to allow
* use of your version of this file only under the terms of the GPL and not
* to allow others to use your version of this file under the above gnuplot
* license, indicate your decision by deleting the provisions above and replace
* them with the notice and other provisions required by the GPL. If you do not
* delete the provisions above, a recipient may use your version of this file
* under either the GPL or the gnuplot license.
]*/
#include "QtGnuplotApplication.h"
#include <QtCore>
#include <signal.h>
#ifdef _WIN32
# include <windows.h>
#endif
int main(int argc, char* argv[])
{
signal(SIGINT, SIG_IGN); // Do not listen to SIGINT signals anymore
const char * qt_gnuplot_data_dir = QTGNUPLOT_DATA_DIR;
#if defined(_WIN32)
/* On Windows, QTGNUPLOT_DATA_DIR is relative to installation dir. */
char buf[MAX_PATH];
if (GetModuleFileNameA(NULL, (LPCH) buf, sizeof(buf))) {
char * p = strrchr(buf, '\\');
if (p != NULL) {
*p = '\0';
if ((strlen(buf) >= 4) && (strnicmp(&buf[strlen(buf) - 4], "\\bin", 4) == 0))
buf[strlen(buf) - 4] = '\0';
p = (char *) malloc(strlen(buf) + strlen(QTGNUPLOT_DATA_DIR) + 2);
strcpy(p, buf);
strcat(p, "\\");
strcat(p, QTGNUPLOT_DATA_DIR);
qt_gnuplot_data_dir = p;
}
}
#endif
#if QT_VERSION < 0x040700
/*
* FIXME: EAM Nov 2011
* It is better to use environmental variable
* QT_GRAPHICSSYSTEM but this requires qt >= 4.7
* "raster" is ~5x faster than "native" (default).
* Unfortunately "opengl" isn't recognized on my test systems :-(
*/
// This makes a huge difference to the speed of polygon rendering.
// Alternatives are "native", "raster", "opengl"
QApplication::setGraphicsSystem("raster");
#endif
QtGnuplotApplication application(argc, argv);
// Load translations for the qt library
QTranslator qtTranslator;
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
if (qtTranslator.load("qt_" + QLocale::system().name(),
QLibraryInfo::path(QLibraryInfo::TranslationsPath)))
application.installTranslator(&qtTranslator);
#else
if (qtTranslator.load("qt_" + QLocale::system().name(),
QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
application.installTranslator(&qtTranslator);
#endif
// Load translations for the qt terminal
QTranslator translator;
if (translator.load("qtgnuplot_" + QLocale::system().name(), qt_gnuplot_data_dir))
application.installTranslator(&translator);
// Start
application.exec();
return 0;
}