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