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>
