ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/s10k/Vago/utilvago.cpp
Revision: 1092
Committed: Sat Dec 30 13:43:28 2017 UTC (7 years, 9 months ago) by s10k
Content type: text/x-c++src
File size: 4213 byte(s)
Log Message:
moved files to s10k directory since now vago uses the same libs structures as my other projects (e.g. XmlTools)

File Contents

# Content
1 #include "utilvago.h"
2
3 namespace UtilVago{
4
5 void openLogFile(){
6 QDesktopServices::openUrl(QUrl("file:///"+getAppPath()+"/"+GlobalVars::AppLogName));
7 }
8
9 void showAndLogWarningPopUp(Logger *logger, const QString &message){
10 logger->writeString(message);
11
12 QMessageBox msgBox;
13 msgBox.setIcon(QMessageBox::Warning);
14 msgBox.setText(message);
15 msgBox.exec();
16 }
17
18 //Same of above but allow open log file (doesn't write in log file!!)
19 void showWarningPopUpLogButton(const QString &message){
20 QMessageBox msgBox;
21 msgBox.setIcon(QMessageBox::Warning);
22 msgBox.setText(message);
23 QPushButton *viewb = msgBox.addButton("View log", QMessageBox::ActionRole);
24 msgBox.setStandardButtons(QMessageBox::Close);
25 msgBox.exec();
26 if(msgBox.clickedButton() == (QAbstractButton*)(viewb)){
27 openLogFile();
28 }
29 }
30
31 //Same of above but also writtes directly to the log file the error
32 void showAndLogWarningPopUpLogButton(Logger *logger, const QString &message){
33
34 logger->writeString(message);
35
36 QMessageBox msgBox;
37 msgBox.setIcon(QMessageBox::Warning);
38 msgBox.setText(message);
39 QPushButton *viewb = msgBox.addButton("View log", QMessageBox::ActionRole);
40 msgBox.setStandardButtons(QMessageBox::Close);
41 msgBox.exec();
42 if(msgBox.clickedButton() == (QAbstractButton*)(viewb)){
43 openLogFile();
44 }
45 }
46
47 void showAndLogErrorPopUp(Logger *logger, const QString &message){
48
49 logger->writeString(message);
50
51 QMessageBox msgBox;
52 msgBox.setIcon(QMessageBox::Critical);
53 msgBox.setText(message);
54 msgBox.exec();
55 }
56
57 //Same of above but allow open log file (doesn't write in log file!!)
58 void showErrorPopUpLogButton(const QString &message){
59 QMessageBox msgBox;
60 msgBox.setIcon(QMessageBox::Critical);
61 msgBox.setText(message);
62 QPushButton *viewb = msgBox.addButton("View log", QMessageBox::ActionRole);
63 msgBox.setStandardButtons(QMessageBox::Close);
64 msgBox.exec();
65 if(msgBox.clickedButton() == (QAbstractButton*)(viewb)){
66 openLogFile();
67 }
68 }
69
70 //Same of above but also writtes directly to the log file the error
71 void showAndLogErrorPopUpLogButton(Logger *logger, const QString &message){
72
73 logger->writeString(message);
74
75 QMessageBox msgBox;
76 msgBox.setIcon(QMessageBox::Critical);
77 msgBox.setText(message);
78 QPushButton *viewb = msgBox.addButton("View log", QMessageBox::ActionRole);
79 msgBox.setStandardButtons(QMessageBox::Close);
80 msgBox.exec();
81 if(msgBox.clickedButton() == (QAbstractButton*)(viewb)){
82 openLogFile();
83 }
84 }
85
86 /**
87 Gets application directory. In mac os gets the .app directory
88 **/
89 QString getOSIndependentAppPath(){
90 #ifdef Q_OS_MAC
91 QDir dir = QDir(QCoreApplication::applicationDirPath());
92 if(dir.absolutePath().contains(".app")){ // include bundle, but we don't want it
93 dir.cdUp();
94 dir.cdUp();
95 dir.cdUp();
96 }
97 return dir.absolutePath();
98 #else
99 return QDir::currentPath();
100 #endif
101 }
102
103 QString getAppPath(){
104 return getOSIndependentAppPath();
105 }
106
107 // Absolute paths
108 QString getOniSplitExecutableAbsolutePath(){
109 return getAppPath() + "/" + GlobalVars::ToolsFolder + "/" + GlobalVars::OniSplitString;
110 }
111
112 QString getXmlToolsExecutableAbsolutePath(){
113 return getAppPath() + "/" + GlobalVars::ToolsFolder + "/" + GlobalVars::XmlToolsString;
114 }
115
116 // Executables (includes mono if necessary)
117 QString getOniSplitExecutable(){
118
119 #ifdef Q_OS_MAC
120 return getMonoExecutablePath() + " " + Util::insertQuotes(getOniSplitExecutableAbsolutePath());
121 #else
122 return Util::insertQuotes(getOniSplitExecutableAbsolutePath());
123 #endif
124 }
125
126 QString getXmlToolsExecutable(){
127 return Util::insertQuotes(getXmlToolsExecutableAbsolutePath());
128 }
129
130 #ifdef Q_OS_MAC
131 QString getMonoExecutablePath(){
132
133 // Only way that I found to get mono working in 10.11
134 QString possibleMonoDir = "/usr/local/bin/mono";
135 QFileInfo checkFile(possibleMonoDir);
136
137 if (checkFile.exists() && checkFile.isFile()) {
138 return possibleMonoDir;
139 } else {
140 return "mono";
141 }
142
143 }
144 #endif
145
146 }