#include "PresetManager.h" #include #include #include #ifdef Q_OS_WIN static QString newLine(QStringLiteral("\r\n")); #else static QString newLine(QStringLiteral("\n")); #endif PresetManager::PresetManager() : QObject() { QString filename(QStringLiteral("%1.conf").arg(QApplication::arguments().at(0))); file.setFileName(filename); bool goCreateFile = false; if (!file.exists()) { goCreateFile = true; } if (!file.open(QIODevice::ReadWrite)) { //qWarning() << "cannot read/write conf file! ("< 5) // is there a port? preset.loginData.port = presetValueList.at(5).toInt(); // keep compatibility if (presetValueList.count() > 6) // is there a filename? preset.loginData.filename = presetValueList.at(6); presetList.append(preset); presetString = QString::fromUtf8(file.readLine(32000)); } } const PresetManager::PresetList &PresetManager::getPresetList() const { return presetList; } void PresetManager::savePreset(const LoginData &loginData, QWidget* parent) { bool ok; QString presetName = QInputDialog::getText(parent, tr("Save new Preset as.."), tr("Preset name:"), QLineEdit::Normal, QString(), &ok); if (!ok || presetName.isEmpty()) { //qWarning() << "doin nothin"; return; } for (int i = 0; i < presetList.size(); ++i) { if (presetList.at(i).name == presetName) { presetList.removeAt(i); break; } } Preset preset; preset.name = presetName; preset.loginData = loginData; presetList.append(preset); savePresets(); } void PresetManager::savePresets() { createFile(); // recreate file // save all presets to file for (const Preset &preset : qAsConst(presetList)) { QString presetString = QStringLiteral("%1:%2%3"); QStringList presetValueList; presetValueList << preset.loginData.database; presetValueList << preset.loginData.username; presetValueList << preset.loginData.password; presetValueList << preset.loginData.hostname; presetValueList << preset.loginData.driver; if (preset.loginData.port > -1) presetValueList << QString::number(preset.loginData.port); if (!preset.loginData.filename.isEmpty()) presetValueList << preset.loginData.filename; presetString = presetString.arg(preset.name, presetValueList.join(QLatin1Char(',')), newLine); file.write(presetString.toUtf8()); } file.flush(); } void PresetManager::addDefaultPreset() { Preset defaultPreset; //defaultPreset.loginData.database = Settings::databaseName(); defaultPreset.loginData.driver = QStringLiteral("PQSQL"); defaultPreset.name = defaultPreset.loginData.database; defaultPreset.loginData.username = QStringLiteral("ctc_ws"); defaultPreset.loginData.password = QStringLiteral("ctc11de"); //defaultPreset.loginData.hostname = Settings::databaseHostname(); defaultPreset.loginData.port = -1; // no need to set filename presetList.insert(0, defaultPreset); // first item! } void PresetManager::createFile() { file.resize(0); // clear file file.flush(); file.write("#:<,username><,password><,hostname><,port(optional)><,filename(optional)>"); file.write(newLine.toUtf8()); file.flush(); }