| 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 | }
|
|---|