From cc6fec2bf8d3de8c6f49e4406235b9a28e65e795 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= <thorbjorn.lindeijer@nokia.com>
Date: Mon, 20 Jul 2009 16:58:53 +0200
Subject: [PATCH] Made it possible to choose a name when copying a color scheme

Based on a window-modal input dialog, so that it appears as a sheet on
the Mac.

Reviewed-by: Norwegian Rock Cat
---
 src/plugins/texteditor/fontsettingspage.cpp | 16 +++++++++++++++-
 src/plugins/texteditor/fontsettingspage.h   |  1 +
 src/plugins/texteditor/fontsettingspage.ui  |  2 +-
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp
index bbadbfacf38..a7370094f93 100644
--- a/src/plugins/texteditor/fontsettingspage.cpp
+++ b/src/plugins/texteditor/fontsettingspage.cpp
@@ -44,6 +44,7 @@
 #include <QtGui/QComboBox>
 #include <QtGui/QFileDialog>
 #include <QtGui/QFontDatabase>
+#include <QtGui/QInputDialog>
 #include <QtGui/QListWidget>
 #include <QtGui/QMessageBox>
 #include <QtGui/QPalette>
@@ -425,6 +426,19 @@ void FontSettingsPage::colorSchemeSelected(int index)
 }
 
 void FontSettingsPage::copyColorScheme()
+{
+    QInputDialog *dialog = new QInputDialog(d_ptr->ui.copyButton->window());
+    dialog->setAttribute(Qt::WA_DeleteOnClose);
+    dialog->setInputMode(QInputDialog::TextInput);
+    dialog->setWindowTitle(tr("Copy Color Scheme"));
+    dialog->setLabelText(tr("Color Scheme name:"));
+    dialog->setTextValue(tr("%1 (copy)").arg(d_ptr->m_value.colorScheme().name()));
+
+    connect(dialog, SIGNAL(textValueSelected(QString)), this, SLOT(copyColorScheme(QString)));
+    dialog->open();
+}
+
+void FontSettingsPage::copyColorScheme(const QString &name)
 {
     int index = d_ptr->ui.schemeComboBox->currentIndex();
     if (index == -1)
@@ -444,7 +458,7 @@ void FontSettingsPage::copyColorScheme()
         d_ptr->m_value.setColorScheme(d_ptr->ui.schemeEdit->colorScheme());
 
         ColorScheme scheme = d_ptr->m_value.colorScheme();
-        scheme.setName(tr("%1 (copy)").arg(scheme.name()));
+        scheme.setName(name);
         scheme.save(fileName);
         d_ptr->m_value.setColorSchemeFileName(fileName);
 
diff --git a/src/plugins/texteditor/fontsettingspage.h b/src/plugins/texteditor/fontsettingspage.h
index 1d71c88b169..33f7257be7c 100644
--- a/src/plugins/texteditor/fontsettingspage.h
+++ b/src/plugins/texteditor/fontsettingspage.h
@@ -113,6 +113,7 @@ private slots:
     void fontSizeSelected(const QString &sizeString);
     void colorSchemeSelected(int index);
     void copyColorScheme();
+    void copyColorScheme(const QString &name);
     void deleteColorScheme();
 
 private:
diff --git a/src/plugins/texteditor/fontsettingspage.ui b/src/plugins/texteditor/fontsettingspage.ui
index 3bf055ccfc9..1cd02f47a8d 100644
--- a/src/plugins/texteditor/fontsettingspage.ui
+++ b/src/plugins/texteditor/fontsettingspage.ui
@@ -123,7 +123,7 @@
         <item>
          <widget class="QPushButton" name="copyButton">
           <property name="text">
-           <string>Copy</string>
+           <string>Copy...</string>
           </property>
          </widget>
         </item>
-- 
GitLab