rev 6776 - in trunk/packages/kdelibs/debian: . patches

Sune Vuorela pusling-guest at alioth.debian.org
Thu Jul 19 20:45:22 UTC 2007


Author: pusling-guest
Date: 2007-07-19 20:45:22 +0000 (Thu, 19 Jul 2007)
New Revision: 6776

Added:
   trunk/packages/kdelibs/debian/patches/01_branch_kate_redo_save_fix.diff
Modified:
   trunk/packages/kdelibs/debian/changelog
Log:
add patch to fix saving after redo


Modified: trunk/packages/kdelibs/debian/changelog
===================================================================
--- trunk/packages/kdelibs/debian/changelog	2007-07-19 20:44:54 UTC (rev 6775)
+++ trunk/packages/kdelibs/debian/changelog	2007-07-19 20:45:22 UTC (rev 6776)
@@ -4,6 +4,7 @@
 
   * Reorder stuff in kde-applications.menu to get changing menu entries
     working. (Closes: 254948)
+  * Add patch to fix issue with saving after redo in kate. (Closes: 431920)
 
  -- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org>  Thu, 19 Jul 2007 22:05:18 +0200
 

Added: trunk/packages/kdelibs/debian/patches/01_branch_kate_redo_save_fix.diff
===================================================================
--- trunk/packages/kdelibs/debian/patches/01_branch_kate_redo_save_fix.diff	                        (rev 0)
+++ trunk/packages/kdelibs/debian/patches/01_branch_kate_redo_save_fix.diff	2007-07-19 20:45:22 UTC (rev 6776)
@@ -0,0 +1,121 @@
+Index: kdelibs/kate/part/katedocument.h
+===================================================================
+--- kdelibs/kate/part/katedocument.h	(revision 676515)
++++ kdelibs/kate/part/katedocument.h	(revision 676516)
+@@ -373,7 +373,9 @@
+     // these two variables are for resetting the document to
+     // non-modified if all changes have been undone...
+     KateUndoGroup* lastUndoGroupWhenSaved;
++    KateUndoGroup* lastRedoGroupWhenSaved;
+     bool docWasSavedWhenUndoWasEmpty;
++    bool docWasSavedWhenRedoWasEmpty;
+ 
+     // this sets
+     void updateModified();
+Index: kdelibs/kate/part/katedocument.cpp
+===================================================================
+--- kdelibs/kate/part/katedocument.cpp	(revision 676515)
++++ kdelibs/kate/part/katedocument.cpp	(revision 676516)
+@@ -98,7 +98,9 @@
+   m_undoDontMerge(false),
+   m_undoIgnoreCancel(false),
+   lastUndoGroupWhenSaved( 0 ),
++  lastRedoGroupWhenSaved( 0 ),
+   docWasSavedWhenUndoWasEmpty( true ),
++  docWasSavedWhenRedoWasEmpty( true ),
+   m_modOnHd (false),
+   m_modOnHdReason (0),
+   m_job (0),
+@@ -1546,14 +1548,62 @@
+ 
+ void KateDocument::updateModified()
+ {
+-  if ( ( lastUndoGroupWhenSaved &&
+-         !undoItems.isEmpty() &&
+-         undoItems.last() == lastUndoGroupWhenSaved )
+-       || ( undoItems.isEmpty() && docWasSavedWhenUndoWasEmpty ) )
++  // I noticed that there to many variables to take into consideration
++  // with a simple 'if' or two.
++  //
++  // Patterns Detected:
++  //
++  //  pattern=223  1==7:true  1==8:false  2==7:false  2==8:false
++  //  pattern=201  1==7:true  1==8:false  2==7:false  2==8:false
++  //  pattern=195  1==7:true  1==8:false  2==7:false  2==8:true
++  //  pattern=105  1==7:true  1==8:false  2==7:false  2==8:true
++  //  pattern=148  1==7:false 1==8:false  2==7:false  2==8:false
++  //  pattern=156  1==7:false 1==8:false  2==7:false  2==8:false
++  //  pattern=149  1==7:false 1==8:true   2==7:false  2==8:false
++
++  unsigned char pattern = 0;
++  const bool oneEqualToSeven = (lastUndoGroupWhenSaved == undoItems.last());
++  const bool oneEqualToEight = (lastUndoGroupWhenSaved == redoItems.last());
++  const bool twoEqualToSeven = (lastRedoGroupWhenSaved == undoItems.last());
++  const bool twoEqualToEight = (lastRedoGroupWhenSaved == redoItems.last());
++  bool doModify = false;
++
++  if (lastUndoGroupWhenSaved) pattern |= 1;
++  if (lastRedoGroupWhenSaved) pattern |= 2;
++  if (docWasSavedWhenUndoWasEmpty) pattern |= 4;
++  if (docWasSavedWhenRedoWasEmpty) pattern |= 8;
++  if (undoItems.isEmpty()) pattern |= 16;
++  if (redoItems.isEmpty()) pattern |= 32;
++  if (undoItems.last()) pattern |= 64;
++  if (redoItems.last()) pattern |= 128;
++
++  switch (pattern)
+   {
++    case 223: case 201:
++        doModify = (oneEqualToSeven);
++      break;
++
++    case 195: case 105:
++        doModify = (oneEqualToSeven && twoEqualToEight);
++      break;
++
++    case 148: case 156:
++        doModify = true;
++      break;
++
++    case 149: case 151:
++        doModify = (oneEqualToEight);
++      break;
++  }  
++
++  if (doModify)
++  {
+     setModified( false );
+     kdDebug(13020) << k_funcinfo << "setting modified to false!" << endl;
+   };
++
++  kdDebug(13020) << k_funcinfo << "pattern=" << static_cast<unsigned int>(pattern) << " 1==7:" << oneEqualToSeven 
++  << " 1==8:" << oneEqualToEight << " 2==7:" << twoEqualToSeven << " 2==8:" << twoEqualToEight << endl;
+ }
+ 
+ void KateDocument::clearUndo()
+@@ -1574,6 +1624,9 @@
+   redoItems.clear ();
+   redoItems.setAutoDelete (false);
+ 
++  lastRedoGroupWhenSaved = 0;
++  docWasSavedWhenRedoWasEmpty = false;
++
+   emit undoChanged ();
+ }
+ 
+@@ -2783,9 +2836,14 @@
+   if ( m == false && ! undoItems.isEmpty() )
+   {
+     lastUndoGroupWhenSaved = undoItems.last();
++    lastRedoGroupWhenSaved = redoItems.last();
+   }
+ 
+-  if ( m == false ) docWasSavedWhenUndoWasEmpty = undoItems.isEmpty();
++  if ( m == false )
++  {
++    docWasSavedWhenUndoWasEmpty = undoItems.isEmpty();
++    docWasSavedWhenRedoWasEmpty = redoItems.isEmpty();
++  }
+ }
+ //END
+ 




More information about the pkg-kde-commits mailing list