mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-04-24 23:47:20 +00:00
move dialog part to qml files
This commit is contained in:
parent
f77cf7c1aa
commit
8545192ef8
@ -17,6 +17,7 @@
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtQuick.Controls 1.3 as QtControls
|
||||
import QtQuick.Dialogs 1.2 as QtDialogs
|
||||
|
||||
import org.kde.plasma.private.awesomewidget 1.0
|
||||
|
||||
@ -371,7 +372,31 @@ Item {
|
||||
QtControls.Button {
|
||||
width: parent.width * 3 / 5
|
||||
text: i18n("Export configuration")
|
||||
onClicked: awConfig.exportConfiguration(plasmoid.configuration)
|
||||
onClicked: saveConfigAs.open()
|
||||
}
|
||||
|
||||
QtDialogs.FileDialog {
|
||||
id: saveConfigAs
|
||||
selectExisting: false
|
||||
title: i18n("Export")
|
||||
onAccepted: {
|
||||
var status = awConfig.exportConfiguration(
|
||||
plasmoid.configuration,
|
||||
saveConfigAs.fileUrl.toString().replace("file://", ""))
|
||||
if (status) {
|
||||
messageDialog.title = i18n("Success")
|
||||
messageDialog.text = i18n("Please note that binary files were not copied")
|
||||
} else {
|
||||
messageDialog.title = i18n("Ooops...")
|
||||
messageDialog.text = i18n("Could not save configuration file")
|
||||
}
|
||||
messageDialog.open()
|
||||
}
|
||||
}
|
||||
|
||||
QtDialogs.MessageDialog {
|
||||
id: messageDialog
|
||||
standardButtons: QtDialogs.StandardButton.Ok
|
||||
}
|
||||
}
|
||||
|
||||
@ -385,9 +410,41 @@ Item {
|
||||
QtControls.Button {
|
||||
width: parent.width * 3 / 5
|
||||
text: i18n("Import configuration")
|
||||
onClicked: {
|
||||
onClicked: openConfig.open()
|
||||
}
|
||||
|
||||
QtDialogs.FileDialog {
|
||||
id: openConfig
|
||||
title: i18n("Import")
|
||||
onAccepted: importSelection.open()
|
||||
}
|
||||
|
||||
QtDialogs.Dialog {
|
||||
id: importSelection
|
||||
|
||||
Column {
|
||||
QtControls.CheckBox {
|
||||
id: importPlasmoid
|
||||
text: i18n("Import plasmoid settings")
|
||||
}
|
||||
|
||||
QtControls.CheckBox {
|
||||
id: importExtensions
|
||||
text: i18n("Import extensions")
|
||||
}
|
||||
|
||||
QtControls.CheckBox {
|
||||
id: importAdds
|
||||
text: i18n("Import additional files")
|
||||
}
|
||||
}
|
||||
|
||||
onAccepted: {
|
||||
if (debug) console.debug()
|
||||
var importConfig = awConfig.importConfiguration()
|
||||
var importConfig = awConfig.importConfiguration(
|
||||
openConfig.fileUrl.toString().replace("file://", ""),
|
||||
importPlasmoid.checked, importExtensions.checked,
|
||||
importAdds.checked)
|
||||
for (var key in importConfig)
|
||||
plasmoid.configuration[key] = importConfig[key]
|
||||
}
|
||||
|
@ -19,15 +19,11 @@
|
||||
|
||||
#include <KI18n/KLocalizedString>
|
||||
|
||||
#include <QCheckBox>
|
||||
#include <QDialogButtonBox>
|
||||
#include <QDir>
|
||||
#include <QFileDialog>
|
||||
#include <QMessageBox>
|
||||
#include <QQmlPropertyMap>
|
||||
#include <QSettings>
|
||||
#include <QTextCodec>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
#include "awdebug.h"
|
||||
|
||||
@ -55,13 +51,11 @@ bool AWConfigHelper::dropCache() const
|
||||
}
|
||||
|
||||
|
||||
void AWConfigHelper::exportConfiguration(QObject *nativeConfig) const
|
||||
bool AWConfigHelper::exportConfiguration(QObject *nativeConfig,
|
||||
const QString fileName) const
|
||||
{
|
||||
// get file path and init settings object
|
||||
QString fileName = QFileDialog::getSaveFileName(nullptr, i18n("Export"));
|
||||
if (fileName.isEmpty())
|
||||
return;
|
||||
qCInfo(LOG_AW) << "Selected filename" << fileName;
|
||||
qCDebug(LOG_AW) << "Selected filename" << fileName;
|
||||
|
||||
QSettings settings(fileName, QSettings::IniFormat);
|
||||
|
||||
// plasmoid configuration
|
||||
@ -103,33 +97,22 @@ void AWConfigHelper::exportConfiguration(QObject *nativeConfig) const
|
||||
// sync settings
|
||||
settings.sync();
|
||||
// show additional message
|
||||
switch (settings.status()) {
|
||||
case QSettings::NoError:
|
||||
QMessageBox::information(
|
||||
nullptr, i18n("Success"),
|
||||
i18n("Please note that binary files were not copied"));
|
||||
break;
|
||||
default:
|
||||
QMessageBox::critical(nullptr, i18n("Ooops..."),
|
||||
i18n("Could not save configuration file"));
|
||||
break;
|
||||
}
|
||||
return settings.status() == QSettings::NoError;
|
||||
}
|
||||
|
||||
|
||||
QVariantMap AWConfigHelper::importConfiguration() const
|
||||
QVariantMap AWConfigHelper::importConfiguration(const QString fileName,
|
||||
const bool importPlasmoid,
|
||||
const bool importExtensions,
|
||||
const bool importAdds) const
|
||||
{
|
||||
qCDebug(LOG_AW) << "Selected filename" << fileName;
|
||||
|
||||
QVariantMap configuration;
|
||||
// get file path and init settings object
|
||||
QString fileName = QFileDialog::getOpenFileName(nullptr, i18n("Import"));
|
||||
if (fileName.isEmpty())
|
||||
return configuration;
|
||||
qCInfo(LOG_AW) << "Selected filename" << fileName;
|
||||
QSettings settings(fileName, QSettings::IniFormat);
|
||||
QHash<QString, bool> selection = selectImport();
|
||||
|
||||
// extensions
|
||||
if (selection[QString("extensions")]) {
|
||||
if (importExtensions) {
|
||||
foreach (QString item, m_dirs) {
|
||||
settings.beginGroup(item);
|
||||
foreach (QString it, settings.childGroups())
|
||||
@ -139,7 +122,7 @@ QVariantMap AWConfigHelper::importConfiguration() const
|
||||
}
|
||||
|
||||
// additional files
|
||||
if (selection[QString("adds")]) {
|
||||
if (importAdds) {
|
||||
settings.beginGroup(QString("json"));
|
||||
// script filters
|
||||
writeFile(settings, QString("filters"),
|
||||
@ -153,7 +136,7 @@ QVariantMap AWConfigHelper::importConfiguration() const
|
||||
}
|
||||
|
||||
// plasmoid configuration
|
||||
if (selection[QString("plasmoid")]) {
|
||||
if (importPlasmoid) {
|
||||
settings.beginGroup(QString("plasmoid"));
|
||||
foreach (QString key, settings.childKeys())
|
||||
configuration[key] = settings.value(key);
|
||||
@ -279,50 +262,6 @@ void AWConfigHelper::readFile(QSettings &settings, const QString key,
|
||||
}
|
||||
|
||||
|
||||
QHash<QString, bool> AWConfigHelper::selectImport() const
|
||||
{
|
||||
QDialog *dialog = new QDialog(nullptr);
|
||||
QCheckBox *importPlasmoidSettings
|
||||
= new QCheckBox(i18n("Import plasmoid settings"), dialog);
|
||||
importPlasmoidSettings->setChecked(true);
|
||||
QCheckBox *importExtensionsSettings
|
||||
= new QCheckBox(i18n("Import extensions"), dialog);
|
||||
importExtensionsSettings->setChecked(true);
|
||||
QCheckBox *importAddsSettings
|
||||
= new QCheckBox(i18n("Import additional files"), dialog);
|
||||
importAddsSettings->setChecked(true);
|
||||
QDialogButtonBox *dialogButtons
|
||||
= new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
|
||||
Qt::Horizontal, dialog);
|
||||
QVBoxLayout *layout = new QVBoxLayout(dialog);
|
||||
layout->addWidget(importPlasmoidSettings);
|
||||
layout->addWidget(importExtensionsSettings);
|
||||
layout->addWidget(importAddsSettings);
|
||||
layout->addWidget(dialogButtons);
|
||||
connect(dialogButtons, SIGNAL(accepted()), dialog, SLOT(accept()));
|
||||
connect(dialogButtons, SIGNAL(rejected()), dialog, SLOT(reject()));
|
||||
|
||||
// get parameters
|
||||
QHash<QString, bool> import;
|
||||
import[QString("plasmoid")] = false;
|
||||
import[QString("extensions")] = false;
|
||||
import[QString("adds")] = false;
|
||||
switch (dialog->exec()) {
|
||||
case QDialog::Accepted:
|
||||
import[QString("plasmoid")] = importPlasmoidSettings->isChecked();
|
||||
import[QString("extensions")] = importExtensionsSettings->isChecked();
|
||||
import[QString("adds")] = importAddsSettings->isChecked();
|
||||
break;
|
||||
case QDialog::Rejected:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
dialog->deleteLater();
|
||||
|
||||
return import;
|
||||
}
|
||||
|
||||
|
||||
void AWConfigHelper::writeFile(QSettings &settings, const QString key,
|
||||
const QString fileName) const
|
||||
{
|
||||
|
@ -33,8 +33,12 @@ public:
|
||||
explicit AWConfigHelper(QObject *parent = nullptr);
|
||||
virtual ~AWConfigHelper();
|
||||
Q_INVOKABLE bool dropCache() const;
|
||||
Q_INVOKABLE void exportConfiguration(QObject *nativeConfig) const;
|
||||
Q_INVOKABLE QVariantMap importConfiguration() const;
|
||||
Q_INVOKABLE bool exportConfiguration(QObject *nativeConfig,
|
||||
const QString fileName) const;
|
||||
Q_INVOKABLE QVariantMap importConfiguration(const QString fileName,
|
||||
const bool importPlasmoid,
|
||||
const bool importExtensions,
|
||||
const bool importAdds) const;
|
||||
// dataengine
|
||||
Q_INVOKABLE QVariantMap readDataEngineConfiguration() const;
|
||||
Q_INVOKABLE void
|
||||
@ -47,7 +51,6 @@ private:
|
||||
void copySettings(QSettings &from, QSettings &to) const;
|
||||
void readFile(QSettings &settings, const QString key,
|
||||
const QString fileName) const;
|
||||
QHash<QString, bool> selectImport() const;
|
||||
void writeFile(QSettings &settings, const QString key,
|
||||
const QString fileName) const;
|
||||
// properties
|
||||
|
Loading…
Reference in New Issue
Block a user