[kde-doc-english] [kdevplatform] shell/settings: Add ability to "copy-paste" whole ENV to settings
Michal Humpula
michal.humpula at seznam.cz
Thu Nov 28 17:31:06 UTC 2013
Git commit 4334a3108b89bd87529ea74ee75da546241cff5c by Michal Humpula.
Committed on 27/11/2013 at 18:44.
Pushed by michalhumpula into branch 'master'.
Add ability to "copy-paste" whole ENV to settings
REVIEW: 114164
GUI: new button in launchers configuration->Environment settings
M +34 -0 shell/settings/environmentwidget.cpp
M +1 -0 shell/settings/environmentwidget.h
M +13 -0 shell/settings/environmentwidget.ui
http://commits.kde.org/kdevplatform/4334a3108b89bd87529ea74ee75da546241cff5c
diff --git a/shell/settings/environmentwidget.cpp b/shell/settings/environmentwidget.cpp
index ace016a..68d825c 100644
--- a/shell/settings/environmentwidget.cpp
+++ b/shell/settings/environmentwidget.cpp
@@ -53,11 +53,14 @@ EnvironmentWidget::EnvironmentWidget( QWidget *parent )
ui.variableTable->horizontalHeader()->setResizeMode( 1, QHeaderView::Stretch );
ui.newButton->setIcon(KIcon("list-add"));
ui.deleteButton->setIcon(KIcon("list-remove"));
+ ui.newMultipleButton->setIcon(KIcon("format-list-unordered"));
connect( ui.newButton, SIGNAL(clicked()),
SLOT(newButtonClicked()) );
connect( ui.deleteButton, SIGNAL(clicked()),
SLOT(deleteButtonClicked()) );
+ connect( ui.newMultipleButton, SIGNAL(clicked()),
+ SLOT(newMultipleButtonClicked()) );
connect( ui.addgrpBtn, SIGNAL(clicked()), SLOT(addGroupClicked()) );
connect( ui.addgrpBtn, SIGNAL(clicked()), SIGNAL(changed()) );
@@ -166,6 +169,37 @@ void EnvironmentWidget::deleteButtonClicked()
groupModel->removeVariables( mapped );
}
+void EnvironmentWidget::newMultipleButtonClicked()
+{
+ KDialog * dialog = new KDialog( this );
+ dialog->setCaption( i18n( "New Environment Variables" ) );
+ dialog->setButtons( KDialog::Ok | KDialog::Cancel );
+ dialog->setDefaultButton( KDialog::Ok );
+
+ QWidget *main = new QWidget( dialog );
+ QVBoxLayout *layout = new QVBoxLayout( main );
+
+ KTextEdit *edit = new KTextEdit( main );
+ layout->addWidget( edit );
+ edit->setClickMessage("VARIABLE1=VALUE1\nVARIABLE2=VALUE2");
+ edit->setFocus();
+ dialog->setMainWidget( main );
+
+ if ( dialog->exec() != QDialog::Accepted ) {
+ return;
+ }
+
+ QStringList lines = edit->toPlainText().split( "\n", QString::SkipEmptyParts );
+
+ foreach(const QString &line, lines) {
+ QString name = line.section('=', 0, 0);
+ QString value = line.section('=', 1, -1).trimmed();
+ if (!name.isEmpty() && !value.isEmpty()) {
+ groupModel->addVariable( name, value );
+ }
+ }
+}
+
void EnvironmentWidget::addGroupClicked()
{
QString curText = ui.activeCombo->currentText();
diff --git a/shell/settings/environmentwidget.h b/shell/settings/environmentwidget.h
index b464a4b..9f89ff0 100644
--- a/shell/settings/environmentwidget.h
+++ b/shell/settings/environmentwidget.h
@@ -58,6 +58,7 @@ Q_SIGNALS:
private Q_SLOTS:
void newButtonClicked();
void deleteButtonClicked();
+ void newMultipleButtonClicked();
void addGroupClicked();
void removeGroupClicked();
void activeGroupChanged( int );
diff --git a/shell/settings/environmentwidget.ui b/shell/settings/environmentwidget.ui
index 4140c98..f968330 100644
--- a/shell/settings/environmentwidget.ui
+++ b/shell/settings/environmentwidget.ui
@@ -107,6 +107,19 @@
</widget>
</item>
<item>
+ <widget class="KPushButton" name="newMultipleButton">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="toolTip">
+ <string>Add Multiple Variables</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<spacer>
<property name="orientation">
<enum>Qt::Vertical</enum>
More information about the kde-doc-english
mailing list