[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdebase/kate
From:       Christoph Cullmann <cullmann () kde ! org>
Date:       2005-04-17 15:27:12
Message-ID: 20050417152712.01989488 () office ! kde ! org
[Download RAW message or body]

CVS commit by cullmann: 

session Save As


  M +1 -0      app/katemainwindow.cpp   1.290
  M +32 -3     app/katesession.cpp   1.28
  M +12 -1     app/katesession.h   1.16
  M +2 -1      data/kateui.rc   1.88


--- kdebase/kate/app/katemainwindow.cpp  #1.289:1.290
@@ -274,4 +274,5 @@ void KateMainWindow::setupActions()
   a=new KAction(i18n("&Open"), "fileopen", 0, KateSessionManager::self(), \
SLOT(sessionOpen()), actionCollection(), "sessions_open");  a=new \
KAction(i18n("&Save"), "filesave", 0, KateSessionManager::self(), \
SLOT(sessionSave()), actionCollection(), "sessions_save"); +  a=new \
KAction(i18n("Save &As"), "filesaveas", 0, KateSessionManager::self(), \
SLOT(sessionSaveAs()), actionCollection(), "sessions_save_as");  }
 

--- kdebase/kate/app/katesession.cpp  #1.27:1.28
@@ -107,7 +107,7 @@ QString KateSession::sessionFile () cons
 }
 
-bool KateSession::create (const QString &name)
+bool KateSession::create (const QString &name, bool force)
 {
-  if (name.isEmpty() || !m_sessionFileRel.isEmpty())
+  if (!force && (name.isEmpty() || !m_sessionFileRel.isEmpty()))
     return false;
 
@@ -469,4 +469,22 @@ void KateSessionManager::sessionSave ()
 }
 
+void KateSessionManager::sessionSaveAs ()
+{
+  bool ok = false;
+  QString name = KInputDialog::getText (i18n("Specify a new name for current \
session"), i18n("Session Name"), "", &ok); +
+  if (!ok)
+    return;
+
+  if (name.isEmpty())
+  {
+    KMessageBox::error (0, i18n("To save a session, you must specify a name!"), i18n \
("Missing Session Name")); +    return;
+  }
+
+  activeSession()->create (name);
+  saveActiveSession ();
+}
+
 //BEGIN CHOOSER DIALOG
 
@@ -519,4 +537,6 @@ KateSessionChooser::KateSessionChooser (
   m_sessions->setAllColumnsShowFocus (true);
 
+  connect (m_sessions, SIGNAL(selectionChanged()), this, SLOT(selectionChanged()));
+
   KateSessionList &slist (KateSessionManager::self()->sessionList());
   for (unsigned int i=0; i < slist.count(); ++i)
@@ -562,4 +582,13 @@ void KateSessionChooser::slotUser2 ()
 }
 
+void KateSessionChooser::selectionChanged ()
+{
+  enableButton (KDialogBase::User1, m_sessions->selectedItem ());
+}
+
+//END CHOOSER DIALOG
+
+//BEGIN OPEN DIALOG
+
 KateSessionOpenDialog::KateSessionOpenDialog (QWidget *parent)
  : KDialogBase (  parent
@@ -622,3 +651,3 @@ void KateSessionOpenDialog::slotUser2 ()
 }
 
-//END CHOOSER DIALOG
+//END OPEN DIALOG

--- kdebase/kate/app/katesession.h  #1.15:1.16
@@ -85,7 +85,8 @@ class KateSession  : public KShared
      * create the session file, if not existing
      * @param name name for this session
+     * @param force force to create new file
      * @return true if created, false if no creation needed
      */
-    bool create (const QString &name);
+    bool create (const QString &name, bool force = false);
 
     /**
@@ -233,4 +234,9 @@ class KateSessionManager : public QObjec
     void sessionSave ();
 
+    /**
+     * try to save as current session
+     */
+    void sessionSaveAs ();
+
   private slots:
     void dirty (const QString &path);
@@ -290,4 +296,9 @@ class KateSessionChooser : public KDialo
     void slotUser2 ();
 
+    /**
+     * selection has changed
+     */
+    void selectionChanged ();
+
   private:
     KListView *m_sessions;

--- kdebase/kate/data/kateui.rc  #1.87:1.88
@@ -1,4 +1,4 @@
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui name="kate" version="41">
+<kpartgui name="kate" version="42">
 
 <MenuBar noMerge="1">
@@ -66,4 +66,5 @@
     <Separator />
     <Action name="sessions_save"/>
+    <Action name="sessions_save_as"/>
   </Menu>
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic