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

List:       kde-commits
Subject:    kdesdk/cervisia
From:       Christian Loose <christian.loose () hamburg ! de>
Date:       2005-03-07 21:49:36
Message-ID: 20050307214936.4C815103CB () office ! kde ! org
[Download RAW message or body]

CVS commit by cloose: 

Added support for commit template message (CVS/Template) in 
the commit dialog. 

Patch by Darrell Esau. 

TODO: 

- check if we need to support subdirectory templates
- if yes, check what cvs does when a commit spans several directories


  M +5 -0      ChangeLog   1.150
  M +72 -0     commitdlg.cpp   1.21
  M +8 -0      commitdlg.h   1.10


--- kdesdk/cervisia/commitdlg.cpp  #1.20:1.21
@@ -16,4 +16,6 @@
 
 #include <qcombobox.h>
+#include <qcheckbox.h>
+#include <qdir.h>
 #include <qfileinfo.h>
 #include <qlabel.h>
@@ -68,4 +70,10 @@ CommitDialog::CommitDialog(KConfig& cfg,
     layout->addWidget(edit, 10);
 
+    m_useTemplateChk = new QCheckBox(i18n("Use log message &template"), mainWidget);
+    layout->addWidget(m_useTemplateChk);
+    connect( m_useTemplateChk, SIGNAL(clicked()), this, SLOT(useTemplateClicked()) );
+
+    checkForTemplateFile();
+
     setButtonGuiItem(User1, KGuiItem(i18n("&Diff"), "vcs_diff"));
     enableButton(User1, false);
@@ -83,4 +91,7 @@ CommitDialog::~CommitDialog()
 {
     saveDialogSize(partConfig, "CommitDialog");
+
+    KConfigGroupSaver cs(&partConfig, "CommitDialog");
+    partConfig.writeEntry("UseTemplate", m_useTemplateChk->isChecked());
 }
 
@@ -103,4 +114,7 @@ void CommitDialog::setLogMessage(const Q
 {
     edit->setText(msg);
+
+    if( m_useTemplateChk->isChecked() )
+        addTemplateText();
 }
 
@@ -200,4 +214,62 @@ void CommitDialog::showDiffDialog(const 
 
 
+void CommitDialog::useTemplateClicked()
+{
+    if( m_useTemplateChk->isChecked() )
+    {
+        addTemplateText();
+    }
+    else
+    {
+        removeTemplateText();
+    }
+}
+
+
+void CommitDialog::checkForTemplateFile()
+{
+    QString filename = QDir::current().absPath() + "/CVS/Template";
+    if( QFile::exists(filename) )
+    {
+        QFile f(filename);
+        if( f.open(IO_ReadOnly) )
+        {
+            QTextStream stream(&f);
+            m_templateText = stream.read();
+            f.close();
+
+            m_useTemplateChk->setEnabled(true);
+            KConfigGroupSaver cs(&partConfig, "CommitDialog");
+            bool check = partConfig.readBoolEntry("UseTemplate", true);
+            m_useTemplateChk->setChecked(check);
+
+            addTemplateText();
+        }
+        else
+        {
+            m_useTemplateChk->setEnabled(false);
+        }
+    }
+    else
+    {
+        m_useTemplateChk->setEnabled(false);
+    }
+}
+
+
+void CommitDialog::addTemplateText()
+{
+    edit->append(m_templateText);
+    edit->moveCursor(QTextEdit::MoveHome, false);
+    edit->ensureCursorVisible();
+}
+
+
+void CommitDialog::removeTemplateText()
+{
+    edit->setText(edit->text().remove(m_templateText));
+}
+
+
 #include "commitdlg.moc"
 

--- kdesdk/cervisia/commitdlg.h  #1.9:1.10
@@ -21,4 +21,5 @@
 
 class QComboBox;
+class QCheckBox;
 class QListBox;
 class KTextEdit;
@@ -47,7 +48,11 @@ private slots:
     void fileHighlighted(int);
     void diffClicked();
+    void useTemplateClicked();
 
 private:
     void showDiffDialog(const QString& fileName);
+    void checkForTemplateFile();
+    void addTemplateText();
+    void removeTemplateText();
 
     QListBox *listbox;
@@ -59,4 +64,7 @@ private:
     int highlightedFile;
     
+    QCheckBox* m_useTemplateChk;
+    QString    m_templateText;
+    
     KConfig&            partConfig;
     CvsService_stub*    cvsService;     // for diff dialog

--- kdesdk/cervisia/ChangeLog  #1.149:1.150
@@ -1,2 +1,7 @@
+2005-03-07  Christian Loose <christian.loose@kdemail.net>
+
+        * Added support for commit template message (CVS/Template) in
+          the commit dialog. Patch by Darrell Esau.
+
 2005-03-04  Christian Loose <christian.loose@kdemail.net>
 


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

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