[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: Re: branches/KDE/3.5/kdelibs/kate/part
From: Leo Savernik <l.savernik () aon ! at>
Date: 2007-06-17 19:48:00
Message-ID: 200706172148.01502.l.savernik () aon ! at
[Download RAW message or body]
Am Sonntag, 17. Juni 2007 schrieb Guillermo Antonio Amaral Bastidas:
> 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; }
This may fix the bug, but it's not actually maintainable code. Is this some
kind of autogenerated stuff? How did you produce it?
mfg
Leo
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic