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 2.0
|
||||||
import QtQuick.Controls 1.3 as QtControls
|
import QtQuick.Controls 1.3 as QtControls
|
||||||
|
import QtQuick.Dialogs 1.2 as QtDialogs
|
||||||
|
|
||||||
import org.kde.plasma.private.awesomewidget 1.0
|
import org.kde.plasma.private.awesomewidget 1.0
|
||||||
|
|
||||||
@ -371,7 +372,31 @@ Item {
|
|||||||
QtControls.Button {
|
QtControls.Button {
|
||||||
width: parent.width * 3 / 5
|
width: parent.width * 3 / 5
|
||||||
text: i18n("Export configuration")
|
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 {
|
QtControls.Button {
|
||||||
width: parent.width * 3 / 5
|
width: parent.width * 3 / 5
|
||||||
text: i18n("Import configuration")
|
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()
|
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)
|
for (var key in importConfig)
|
||||||
plasmoid.configuration[key] = importConfig[key]
|
plasmoid.configuration[key] = importConfig[key]
|
||||||
}
|
}
|
||||||
|
@ -19,15 +19,11 @@
|
|||||||
|
|
||||||
#include <KI18n/KLocalizedString>
|
#include <KI18n/KLocalizedString>
|
||||||
|
|
||||||
#include <QCheckBox>
|
|
||||||
#include <QDialogButtonBox>
|
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QFileDialog>
|
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QQmlPropertyMap>
|
#include <QQmlPropertyMap>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QTextCodec>
|
#include <QTextCodec>
|
||||||
#include <QVBoxLayout>
|
|
||||||
|
|
||||||
#include "awdebug.h"
|
#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
|
qCDebug(LOG_AW) << "Selected filename" << fileName;
|
||||||
QString fileName = QFileDialog::getSaveFileName(nullptr, i18n("Export"));
|
|
||||||
if (fileName.isEmpty())
|
|
||||||
return;
|
|
||||||
qCInfo(LOG_AW) << "Selected filename" << fileName;
|
|
||||||
QSettings settings(fileName, QSettings::IniFormat);
|
QSettings settings(fileName, QSettings::IniFormat);
|
||||||
|
|
||||||
// plasmoid configuration
|
// plasmoid configuration
|
||||||
@ -103,33 +97,22 @@ void AWConfigHelper::exportConfiguration(QObject *nativeConfig) const
|
|||||||
// sync settings
|
// sync settings
|
||||||
settings.sync();
|
settings.sync();
|
||||||
// show additional message
|
// show additional message
|
||||||
switch (settings.status()) {
|
return settings.status() == QSettings::NoError;
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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;
|
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);
|
QSettings settings(fileName, QSettings::IniFormat);
|
||||||
QHash<QString, bool> selection = selectImport();
|
|
||||||
|
|
||||||
// extensions
|
// extensions
|
||||||
if (selection[QString("extensions")]) {
|
if (importExtensions) {
|
||||||
foreach (QString item, m_dirs) {
|
foreach (QString item, m_dirs) {
|
||||||
settings.beginGroup(item);
|
settings.beginGroup(item);
|
||||||
foreach (QString it, settings.childGroups())
|
foreach (QString it, settings.childGroups())
|
||||||
@ -139,7 +122,7 @@ QVariantMap AWConfigHelper::importConfiguration() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// additional files
|
// additional files
|
||||||
if (selection[QString("adds")]) {
|
if (importAdds) {
|
||||||
settings.beginGroup(QString("json"));
|
settings.beginGroup(QString("json"));
|
||||||
// script filters
|
// script filters
|
||||||
writeFile(settings, QString("filters"),
|
writeFile(settings, QString("filters"),
|
||||||
@ -153,7 +136,7 @@ QVariantMap AWConfigHelper::importConfiguration() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
// plasmoid configuration
|
// plasmoid configuration
|
||||||
if (selection[QString("plasmoid")]) {
|
if (importPlasmoid) {
|
||||||
settings.beginGroup(QString("plasmoid"));
|
settings.beginGroup(QString("plasmoid"));
|
||||||
foreach (QString key, settings.childKeys())
|
foreach (QString key, settings.childKeys())
|
||||||
configuration[key] = settings.value(key);
|
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,
|
void AWConfigHelper::writeFile(QSettings &settings, const QString key,
|
||||||
const QString fileName) const
|
const QString fileName) const
|
||||||
{
|
{
|
||||||
|
@ -33,8 +33,12 @@ public:
|
|||||||
explicit AWConfigHelper(QObject *parent = nullptr);
|
explicit AWConfigHelper(QObject *parent = nullptr);
|
||||||
virtual ~AWConfigHelper();
|
virtual ~AWConfigHelper();
|
||||||
Q_INVOKABLE bool dropCache() const;
|
Q_INVOKABLE bool dropCache() const;
|
||||||
Q_INVOKABLE void exportConfiguration(QObject *nativeConfig) const;
|
Q_INVOKABLE bool exportConfiguration(QObject *nativeConfig,
|
||||||
Q_INVOKABLE QVariantMap importConfiguration() const;
|
const QString fileName) const;
|
||||||
|
Q_INVOKABLE QVariantMap importConfiguration(const QString fileName,
|
||||||
|
const bool importPlasmoid,
|
||||||
|
const bool importExtensions,
|
||||||
|
const bool importAdds) const;
|
||||||
// dataengine
|
// dataengine
|
||||||
Q_INVOKABLE QVariantMap readDataEngineConfiguration() const;
|
Q_INVOKABLE QVariantMap readDataEngineConfiguration() const;
|
||||||
Q_INVOKABLE void
|
Q_INVOKABLE void
|
||||||
@ -47,7 +51,6 @@ private:
|
|||||||
void copySettings(QSettings &from, QSettings &to) const;
|
void copySettings(QSettings &from, QSettings &to) const;
|
||||||
void readFile(QSettings &settings, const QString key,
|
void readFile(QSettings &settings, const QString key,
|
||||||
const QString fileName) const;
|
const QString fileName) const;
|
||||||
QHash<QString, bool> selectImport() const;
|
|
||||||
void writeFile(QSettings &settings, const QString key,
|
void writeFile(QSettings &settings, const QString key,
|
||||||
const QString fileName) const;
|
const QString fileName) const;
|
||||||
// properties
|
// properties
|
||||||
|
Loading…
Reference in New Issue
Block a user