43 QString theTest =
"This is my Secret";
45 {
setMessage(QObject::tr(
"Crypto Fail").toLocal8Bit(), tr(
"Crypto Fail: MyOrgSettings::onRunOnStartup()").toLocal8Bit(),
Critical); }
52void MyOrgSettings::onUpdateSettings()
86 setMessage(
"is Setting", QString(
"isSetting(%1)").arg(thisFieldName),
Debug);
87 return mySettings->contains(thisFieldName);
95 setMessage(
"read Settings", QString(
"readSettings(%1, %2)").arg(thisSetting, thisDefault),
Debug);
96 mySettings->beginGroup(
"General");
97 QString theSetting = mySettings->value(thisSetting, thisDefault).toString();
98 mySettings->endGroup();
107 setMessage(
"read Settings", QString(
"readSettings(%1)").arg(thisSetting),
Debug);
108 mySettings->beginGroup(
"General");
109 QString theSetting = mySettings->value(thisSetting).toString();
110 mySettings->endGroup();
119 setMessage(
"read Settings Bool", QString(
"readSettingsBool(%1, %2)").arg(thisSetting, thisDefault),
Debug);
120 mySettings->beginGroup(
"General");
121 bool theSetting = mySettings->value(thisSetting, thisDefault).toBool();
122 mySettings->endGroup();
131 setMessage(
"read Settings Int", QString(
"readSettingsInt(%1, %2)").arg(thisSetting, thisDefault),
Debug);
132 mySettings->beginGroup(
"General");
133 int theSetting = mySettings->value(thisSetting, thisDefault).toInt();
134 mySettings->endGroup();
143 setMessage(
"write Settings", QString(
"writeSettings(%1, %2)").arg(thisSetting, thisValue),
Debug);
144 mySettings->beginGroup(
"General");
145 mySettings->setValue(thisSetting, thisValue);
146 mySettings->endGroup();
155 setMessage(
"get Data Path", QString(
"getDataPath(%1)").arg(thisFileName),
Debug);
159 QString myDataPath = QString(
"%1%2%3").arg(settingsPath.currentPath(), QDir::separator(), thisFileName);
169 if (myLastApplicationFolder.isEmpty())
172 QString theProjectPath = QCoreApplication::applicationFilePath();
175 setMessage(
"get Last Application Path", QString(
"%1 getLastApplicationPath(%2) - %3").arg(tr(
"getLastApplicationPath not found"), myLastApplicationFolder, theProjectPath),
Warning);
176 theProjectPath = QDir::currentPath();
180 setMessage(
"get Last Application Path", QString(
"getLastApplicationPath(%1)").arg(myLastApplicationFolder),
Debug);
181 return myLastApplicationFolder;
189 setMessage(
"set Last Application Path", QString(
"setLastApplicationPath(%1)").arg(thisPath),
Debug);
190 myLastApplicationFolder = thisPath;
199 if (myOrganizationName.isEmpty()) {
setOrgName(qApp->organizationName()); }
200 setMessage(
"get Org Name", QString(
"getOrgName(%1)").arg(myOrganizationName),
Debug);
201 return myOrganizationName;
209 setMessage(
"set Org Name", QString(
"setOrgName(%1)").arg(thisOrgName),
Debug);
210 if (QString::compare(myOrganizationName, thisOrgName, Qt::CaseInsensitive))
212 myOrganizationName = thisOrgName;
222 if (myOrganizationDomain.isEmpty()) {
setOrgDomain(qApp->organizationDomain()); }
223 setMessage(
"get Org Domain", QString(
"getOrgDomain(%1)").arg(myOrganizationDomain),
Debug);
224 return myOrganizationDomain;
232 setMessage(
"set Org Domain", QString(
"setOrgDomain(%1)").arg(thisOrgDomain),
Debug);
233 if (QString::compare(myOrganizationDomain, thisOrgDomain, Qt::CaseInsensitive))
235 myOrganizationDomain = thisOrgDomain;
245 if (myApplicationName.isEmpty()) {
setAppName(qApp->applicationName()); }
246 setMessage(
"get App Name", QString(
"getAppName(%1)").arg(myApplicationName),
Debug);
247 return myApplicationName;
255 setMessage(
"set App Name", QString(
"setAppName(%1)").arg(thisAppName),
Debug);
256 if (QString::compare(myApplicationName, thisAppName, Qt::CaseInsensitive))
258 myApplicationName = thisAppName;
268 setMessage(
"get Version", QString(
"getVersion(%1)").arg(myVersion),
Debug);
278 setMessage(
"set Version", QString(
"setVersion(%1)").arg(thisVersion),
Debug);
279 if (QString::compare(myVersion, thisVersion, Qt::CaseInsensitive))
281 myVersion = thisVersion;
291 setMessage(
"get CheckInternetUrl", QString(
"getCheckInternetUrl(%1)").arg(myCheckInternetUrl),
Debug);
292 if (myCheckInternetUrl.isEmpty())
294 return myCheckInternetUrl;
303 setMessage(
"set CheckInternetUrl", QString(
"setCheckInternetUrl(%1)").arg(thisCheckInternetUrl),
Debug);
304 if (QString::compare(myCheckInternetUrl, thisCheckInternetUrl, Qt::CaseInsensitive))
306 myCheckInternetUrl = thisCheckInternetUrl;
316 if (myIniFileName.isEmpty())
318 setMessage(
"get Ini File", QString(
"getIniFile(%1)").arg(myIniFileName),
Debug);
319 return myIniFileName;
327 setMessage(
"set Ini File", QString(
"setIniFile(%1)").arg(thisIniFileName),
Debug);
328 if (QString::compare(myIniFileName, thisIniFileName, Qt::CaseInsensitive))
330 myIniFileName = thisIniFileName;
340 setMessage(
"get Ini File", QString(
"getIniFile(%1)").arg(myIniFileName),
Debug);
341 if (myIniFileExtension.isEmpty())
343 return myIniFileExtension;
351 setMessage(
"set Ini File", QString(
"setIniFile(%1)").arg(thisIniFileNameExtension),
Debug);
352 if (QString::compare(myIniFileExtension, thisIniFileNameExtension, Qt::CaseInsensitive))
354 myIniFileExtension = thisIniFileNameExtension;
365 if (myIniFullPath.isEmpty())
369 QCoreApplication::setOrganizationName(
getOrgName());
370 QCoreApplication::setOrganizationDomain(
getOrgDomain());
371 QCoreApplication::setApplicationName(
getAppName());
375 QCoreApplication::setApplicationVersion(
getVersion());
378 return myIniFullPath;
386 setMessage(
"set Ini Full Path", QString(
"%1(%2)").arg(
"setIniFullPath", thisIniFileName),
Debug);
387 if (QString::compare(myIniFullPath, thisIniFileName, Qt::CaseInsensitive))
389 myIniFullPath = thisIniFileName;
400 mySettings->beginGroup(
"Geometry");
402 mySettings->endGroup();
412 mySettings->beginGroup(
"Geometry");
413 myGeometry = mySettings->value(
MY_GEOMETRY).toByteArray();
414 mySettings->endGroup();
424 mySettings->beginGroup(
"Geometry");
426 mySettings->endGroup();
436 mySettings->beginGroup(
"Geometry");
438 mySettings->endGroup();
439 return myWindowState;
447 setMessage(
"read File", QString(
"readFile(%1)").arg(thisFileName),
Debug);
448 QFile file(thisFileName);
449 if(!file.open(QFile::ReadOnly | QFile::Text))
451 setMessage(QObject::tr(
"Error opening file for reading").toLocal8Bit(), QString(
"%1: %2").arg(QObject::tr(
"Could not open file for reading"), thisFileName).toLocal8Bit(),
Critical);
454 QTextStream in(&file);
455 QString thisText = in.readAll();
467 setMessage(
"write File", QString(
"writeFile(%1)").arg(thisFileName),
Debug);
468 QFile theFile(thisFileName);
470 if(!theFile.open(QFile::WriteOnly | QFile::Text | QIODevice::Truncate))
472 setMessage(QObject::tr(
"Error opening file for writing").toLocal8Bit(), QString(
"%1: %2").arg(QObject::tr(
"Could not open file for writing"), thisFileName).toLocal8Bit(),
Critical);
476 QTextStream theFileStream(&theFile);
477 theFileStream << thisContent;
506 setMessage(
"get File Info", QString(
"getFileInfo(%1)").arg(thisFileFolder),
Debug);
507 if (thisFileFolder.isEmpty()) {
return ""; }
509 QFileInfo theFileInfo(thisFileFolder);
515 return theFileInfo.absoluteFilePath();
518 return theFileInfo.absolutePath();
521 return theFileInfo.baseName();
524 return theFileInfo.birthTime().toString();
527 return theFileInfo.canonicalPath();
530 return theFileInfo.canonicalFilePath();
534 return theFileInfo.completeBaseName();
538 return theFileInfo.completeSuffix();
541 return theFileInfo.dir().currentPath();
544 return theFileInfo.fileName();
547 return theFileInfo.filePath();
550 if (theFileInfo.isWritable())
return "true";
else return "false";
552 return QString::number(theFileInfo.size());
554 if (
isFileExists(thisFileFolder))
return "true";
else return "false";
556 if (
isPathExists(thisFileFolder))
return "true";
else return "false";
558 if (theFileInfo.isSymLink())
return "true";
else return "false";
560 if (theFileInfo.isSymLink())
return theFileInfo.symLinkTarget();
else return "";
570 setMessage(
"is App Data Location Good", QString(
"isAppDataLocationGood(%1)").arg(thisFolder),
Debug);
589 if (myAppDataLocation.isEmpty())
591 QString theAppDataLocation = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
592 if (theAppDataLocation.isEmpty())
594 theAppDataLocation = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
595 if (theAppDataLocation.isEmpty())
596 { theAppDataLocation = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation); }
597 if (theAppDataLocation.isEmpty())
598 { theAppDataLocation = QDir::currentPath(); }
602 theAppDataLocation = QDir::currentPath();
606 setMessage(
"get App Data Location", QString(
"getAppDataLocation(%1)").arg(myAppDataLocation),
Debug);
607 return myAppDataLocation;
615 if (QString::compare(myAppDataLocation, thisAppDataLocation, Qt::CaseInsensitive))
617 myAppDataLocation = thisAppDataLocation;
636 setMessage(
"get Environment Var", QString(
"getEnvironmentVar(%1)").arg(thisVar),
Debug);
637 QString theEnvValue = qEnvironmentVariable(thisVar.toLocal8Bit());
638 if (!theEnvValue.isNull())
639 {
return theEnvValue; }
641 {
return thisDefault; }
650 for(
int i = 0; i < thisString.length(); i++)
652 if (thisString.at(i).isLetter())
664 QEventLoop theDelayLoop;
665 QTimer::singleShot(thisSeconds * 1000, &theDelayLoop, &QEventLoop::quit);
674#ifdef MY_INTERNET_CHECK_PING
678 QStringList parameters;
680 parameters <<
"-n" <<
"1";
682 parameters <<
"-c 1";
685 int exitCode = QProcess::execute(
"ping", parameters);
699 bool isInternetAvailable =
false;
700 QNetworkAccessManager *theNetworkManager =
new QNetworkAccessManager;
701 QEventLoop theEventLoop;
702 QObject::connect(theNetworkManager, &QNetworkAccessManager::finished, &theEventLoop, &QEventLoop::quit);
703 QNetworkReply *reply = theNetworkManager->get(QNetworkRequest(QUrl(
getCheckInternetUrl())));
705 if (reply->bytesAvailable())
706 { isInternetAvailable =
true; }
708 { isInternetAvailable =
false; }
710 delete theNetworkManager;
711 return isInternetAvailable;
721#ifdef MY_INTERNET_CHECK_PING
727 bool isNotConnected =
true;
728 while (isNotConnected)
731#ifdef MY_INTERNET_CHECK_PING
746 setMessage(
"file Number Lines", QString(
"fileNumberLines(%1)").arg(thisFile),
Debug);
747 if (!
isFileExists(thisFile)) {
setMessage(QObject::tr(
"File not found").toLocal8Bit(), QString(
"%1: %2").arg(QObject::tr(
"File not found"), thisFile).toLocal8Bit(),
Critical);
return 0; }
748 std::ifstream inFile(thisFile.toLocal8Bit());
749 return std::count(std::istreambuf_iterator<char>(inFile), std::istreambuf_iterator<char>(),
'\n');
757 setMessage(
"remove All Files", QString(
"removeAllFiles(%1)").arg(thisFolder),
Debug);
758 if (!
isPathExists(thisFolder)) {
setMessage(QObject::tr(
"Folder not found").toLocal8Bit(), QString(
"%1: %2").arg(QObject::tr(
"Folder not found"), thisFolder).toLocal8Bit(),
Critical);
return false; }
759 QDir theDirFiles(thisFolder);
760 theDirFiles.setNameFilters(QStringList() <<
"*.*");
761 theDirFiles.setFilter(QDir::Files);
762 foreach(QString theDirFile, theDirFiles.entryList())
764 if (!theDirFiles.remove(theDirFile))
766 setMessage(QObject::tr(
"Files could not be removed").toLocal8Bit(), QString(
"%1: %2").arg(QObject::tr(
"Files could not be removed"), thisFolder).toLocal8Bit(),
Critical);
778 setMessage(
"combine Path File Name", QString(
"combinePathFileName(%1, %2)").arg(thisPath, thisFileName),
Debug);
779 return QString(
"%1%2%3").arg(thisPath, QDir::separator(), thisFileName);
787 setMessage(
"is Path Exists", QString(
"isPathExists(%1)").arg(thisPath),
Debug);
788 return QDir(thisPath).exists() && QFileInfo(thisPath).isDir();
796 setMessage(
"is File Exists", QString(
"isFileExists(%1)").arg(thisFile),
Debug);
798 return QFileInfo::exists(thisFile) && QFileInfo(thisFile).isFile();
806 setMessage(
"remove File", QString(
"removeFile(%1)").arg(thisFile),
Debug);
808 {
return QFile::remove(thisFile); }
817 setMessage(
"is File Make", QString(
"isFileMake(%1, %2)").arg(thisPath, thisFileName),
Debug);
823 QFile theFile(thePath);
824 if (theFile.open(QIODevice::WriteOnly))
827 QTextStream outStream(&theFile);
829 outStream << QString(
"%1 %2").arg(QObject::tr(
"This file was created to test if this folder is writeable by"), QCoreApplication::applicationName()).toLocal8Bit();
845 setMessage(
"is Make Dir", QString(
"isMakeDir(%1)").arg(thisPath),
Debug);
849 if (!dir.mkpath(
"."))
850 {
setMessage(QObject::tr(
"File System Error").toLocal8Bit(), QString(
"%1 %2").arg(tr(
"Error: cannot create file"), thisPath).toLocal8Bit(),
Critical); }
861 isDebugMessage = thisState;
862 setMessage(
"set Debug Message", QString(
"setDebugMessage(%1)").arg(thisState),
Debug);
870 setMessage(
"get Debug Message", QString(
"getDebugMessage(%1)").arg(isDebugMessage),
Debug);
871 return isDebugMessage;
879 if (
setMessage(thisTitle, thisQuestion, MyMessageTypes::Question) ==
"true")
893 return setMessage(thisTitle, thisMessage, thisMessageType);
901 switch (thisMessageType)
911 qDebug() << thisMessage;
913 std::cout << thisMessage.toStdString() << std::endl;
918 { std::cout << thisMessage.toStdString() << std::endl; }
925 qDebug() << thisMessage;
927 std::cout << thisMessage.toStdString() << std::endl;
938 qInfo() << thisMessage;
940 std::cout << thisMessage.toStdString() << std::endl;
944 return QMessageBox::information(
nullptr, thisTitle, thisMessage, QMessageBox::Ok);
952 qDebug() << thisMessage;
954 std::cout << thisMessage.toStdString() << std::endl;
958 QMessageBox theMsgBox;
959 theMsgBox.setWindowTitle(QObject::tr(thisTitle.toLocal8Bit()));
960 theMsgBox.setText(QObject::tr(thisMessage.toLocal8Bit()));
961 theMsgBox.setStandardButtons(QMessageBox::Yes);
962 theMsgBox.addButton(QMessageBox::No);
963 theMsgBox.setDefaultButton(QMessageBox::No);
964 if(theMsgBox.exec() == QMessageBox::Yes)
982 qWarning() << thisMessage;
984 std::cout << thisMessage.toStdString() << std::endl;
988 return QMessageBox::warning(
nullptr, thisTitle, thisMessage, QMessageBox::Ok);
996 qCritical() << thisMessage;
998 std::cout << thisMessage.toStdString() << std::endl;
1002 return QMessageBox::critical(
nullptr, thisTitle, thisMessage, QMessageBox::Ok);
#define MY_CRYPTO_SEED
MY_CRYPTO_SEED
QSettings * getSettings()
get Settings
void setLastApplicationPath(const QString &thisPath)
set Last Application Path
const QString MY_INTERNET_URL
MY_INTERNET_URL
QString getLastApplicationPath()
get Last Application Path
QString combinePathFileName(const QString &thisPath, const QString &thisFileName)
combine Path File Name
bool isFileExists(const QString &thisFile)
File Functions.
bool connectInternet()
connect Internet
bool removeFile(const QString &thisFile)
remove File
MyMessageTypes
Message Types.
void setOrgDomain(const QString &thisOrgDomain)
set Org Domain. setOrgDomain
const QString MY_INI_EXTENSION
MY_INI_EXTENSION
const QString MY_WINDOW_STATES
MY_WINDOW_STATES
int readSettingsInt(const QString &thisSetting, int thisDefault)
read Settings Int
bool isAppDataLocationGood(const QString &thisFolder)
is AppData Location Good
~MyOrgSettings()
MyOrgSettings Destructor.
void setOrgName(const QString &thisOrgName)
set Org Name
QString getIniFullPath()
my Application IniFile
QString getAppDataLocation()
get AppData Location
SimpleCrypt * myCrypto
myCrypto
void setIniFullPath(const QString &thisIniFileName)
set IniFile
QString getAppName()
my Application Name
void setIniFileName(const QString &thisIniFileName)
set IniFile
bool questionYesNo(const char *thisTitle, const char *thisQuestion) const
question Yes No
void setCheckInternetUrl(const QString &thisCheckInternetUrl)
set Check Internet Url
QString getCheckInternetUrl()
get Check Internet Url
QString getEnvironmentVar(const QString &thisVar, const QString &thisDefault)
get Windows Environment Var
const QString MY_GEOMETRY
ConstSettingsGeometry
QString getVersion()
my Application Version
void setIniFileExtension(const QString &thisIniFileNameExtension)
set Ini File Extension
bool isSetting(const QString &thisFieldName)
is Setting
QString getIniFileExtension()
getIniFileExtension
void setDebugMessage(bool thisState)
set Debug Message
bool isPathExists(const QString &thisPath)
is Path Exists
bool writeFile(const QString &thisFileName, const QString &thisContent)
write File
void sendInternetProgress()
send Internet Progress
bool pingInternet()
ping Internet
QString decryptThis(const QString &thisSecret)
decrypt This
QString getIniFileName()
my Application IniFile
QString encryptThis(const QString &thisSecret)
encrypt This
void delay(int thisSeconds)
delay
QString getFileInfo(MyOrgSettings::MyFileinfo thisInfo, const QString &thisFileFolder)
get File Info
MyOrgSettings(QObject *parent=nullptr)
MyOrgSettings Constructor.
int fileNumberLines(const QString &thisFile)
file Number Lines
QString getOrgDomain()
my Organization Domain
bool isFileMake(const QString &thisPath, const QString &thisFileName)
is File Make
bool isWord(const QString &thisString) const
is Word
QString getDataPath(const QString &thisFileName)
Get Data Path.
QVariant setMessage(const QString &thisTitle, const QString &thisMessage, MyMessageTypes thisMessageType) const
set Message
bool getDebugMessage()
get Debug Message
QByteArray getGeometry()
get Geometry
void sendUpdateSettings()
send Update Settings
QVariant showMessageBox(const QString &thisTitle, const QString &thisMessage, MyMessageTypes thisMessageType) const
show Message Box information, question, warning, critica
void setVersion(const QString &thisVersion)
set Version
const QString MY_LAST_PROJECT_FOLDER
MY_QT_PROJECT_NAME
bool removeAllFiles(const QString &thisFolder)
remove All Files
void writeSettings(const QString &thisSetting, const QString &thisValue)
write Settings
void setAppDataLocation(const QString &thisAppDataLocation)
set AppData Location
QString getOrgName()
get Org Name
QString readFile(const QString &thisFileName)
read File
void setWindowState(QByteArray thisWindowState)
get Geometry Min
MyFileinfo
File Information.
@ CanonicalFilePath
CanonicalFilePath
@ AbsoluteFilePath
CanonicalPath
@ SymLinkTarget
SymLinkTarget
@ CompleteSuffix
CompleteSuffix
@ CanonicalPath
CanonicalPath
@ AbsolutePath
AbsolutePath
@ CompleteBaseName
CompleteBaseName
void onRunOnStartup()
Run On Startup.
QString readSettings(const QString &thisSetting, const QString &thisDefault)
read Settings
QSettings * getSetteings()
on Update Settings. onUpdateSettings
void setAppName(const QString &thisAppName)
set AppName
bool readSettingsBool(const QString &thisSetting, bool thisDefault)
read Settings Bool
bool getInternetWait()
get Internet Wait
QByteArray getWindowState()
get Geometry Min
bool isMakeDir(const QString &thisPath)
is Make Dir
void setGeometry(QByteArray thisGeometry)
Screen Geometry.
Simple encryption and decryption of strings and byte arrays.
QString decryptToString(const QString &cyphertext)
decrypt To String QString. decryptToString
QString encryptToString(const QString &plaintext)
encrypt To String QString. encryptToString