[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