[Kst] kdeextragear-2/kst/kst

Andrew Walker arwalker at sumusltd.com
Mon Aug 30 22:55:20 CEST 2004


CVS commit by arwalker: 

Add ability to rename an existing window, from the Window->Rename... menu item.

CCMAIL: 88351-done at bugs.kde.org


  M +35 -6     kst.cpp   1.228
  M +5 -1      kst.h   1.107


--- kdeextragear-2/kst/kst/kst.cpp  #1.227:1.228
@@ -210,4 +210,10 @@ void KstApp::addNewWindowMenu() {
   int id = windowMenu()->insertItem(i18n("&New..."), this, SLOT(slotFileNewWindow()), 0, -1, 0);
   windowMenu()->setWhatsThis(id, i18n("Create a new plot window."));
+
+  id = windowMenu()->insertItem(i18n("&Rename..."), this, SLOT(slotFileRenameWindow()), 0, -1, 0);
+  windowMenu()->setWhatsThis(id, i18n("Rename an existing plot window."));
+  if (!activeView()) {
+    windowMenu()->setItemEnabled(id, false);
+  }
 }
 
@@ -1414,4 +1420,20 @@ void KstApp::slotFileNewWindow() {
 
 
+void KstApp::slotFileRenameWindow() {
+  KstViewWindow *vw = dynamic_cast<KstViewWindow*>(activeWindow());
+
+  if (vw) {
+    QString name = windowName(true, vw->caption());  
+
+    if (!name.isEmpty() && vw->caption() != name) {
+      vw->setCaption(name);
+      vw->setTabCaption(name);
+      updateDialogsForWindow();
+      doc->setModified();
+    }
+  }
+}
+
+
 QString KstApp::newWindow(const QString& name_in) {
   KstViewWindow *w = new KstViewWindow;
@@ -1433,8 +1455,7 @@ QString KstApp::newWindow(const QString&
 
 
-QString KstApp::newWindow(bool prompt) {
+QString KstApp::windowName(bool prompt, const QString& nameOriginal) {
   bool ok = false;
-  QString name = defaultTag;
-  QString nameUsed;
+  QString name = nameOriginal;
 
   do {
@@ -1443,5 +1464,5 @@ QString KstApp::newWindow(bool prompt) {
       QRegExpValidator val(exp, 0L);
       name = KLineEditDlg::getText(i18n("Enter a name for the new window:"), name, &ok, 0L, &val).stripWhiteSpace();
-      if (ok && (name==defaultTag)) {
+      if (ok && name==defaultTag) {
         name = KST::suggestWinName();
       }
@@ -1462,5 +1483,13 @@ QString KstApp::newWindow(bool prompt) {
   } while(true);
 
-  nameUsed = newWindow(name);
+  return name;
+}
+
+
+QString KstApp::newWindow(bool prompt) {
+  bool ok = false;
+  QString nameUsed;
+
+  nameUsed = newWindow(windowName(prompt, defaultTag));
 
   return nameUsed;

--- kdeextragear-2/kst/kst/kst.h  #1.106:1.107
@@ -111,4 +111,5 @@ class KstApp : public KMdiMainFrm {
     Kst2DPlotMap& plotHolderWhileOpeningDocument();
 
+    QString windowName(bool prompt, const QString& nameOriginal);
     QString newWindow(const QString& name);
     QString newWindow(bool prompt = true);
@@ -190,7 +191,10 @@ class KstApp : public KMdiMainFrm {
     void slotConfigureKeys();
 
-    /** open a new application window by creating a new instance of KstApp */
+    /** open a new application window */
     void slotFileNewWindow();
 
+    /** rename aa existing application window */
+    void slotFileRenameWindow();
+
     /** clears the document in the view and creates a new document */
     void slotFileNew();





More information about the Kst mailing list