|
From: Vladan B. <vb...@ie...> - 2005-10-07 16:04:28
|
A while back I wrote with a list of features I would like to see in KDiff3. Among them was this one: > 2) Make the 'Goto next delta' button configurable when doing a 3-way > merge of a file. I would like to be able to skip certain types of > differences. > For example, I often have to merge differences between A and B into C. > In this case I am not interested in the deltas where A and B are equal > and C is different (where A and B have purple color). Today I noticed for the first time the overview options in the Diffview menu. When set to "A vs. B overview" I get exactly what I want in the second overview column. The problem is that the "Goto Next Delta" and "Goto Previous Delta" buttons (and keys) still step through all the deltas, not just the "interesting" ones. Thus I modified KDiff3 so it honors the overview mode when using the "goto next/previous delta" commands. Since there's no "kdiff3-devel" mailing list, I'm sending the patch here. Attahced you'll find a patch against the latest release (0.9.88). ==== A few words about the implementation (this is meant for Joachim): In order to implement it I had to make a design choice: The code to skip "uninteresting" deltas had to go into MergeResultWindow::go(). The problem was: how do I get the current overview mode? The overview mode is stored inside the Overview widget and, as far as I can tell it is not accessible from MergeResultWindow. I could think of three ways to do it: 1) Place the current overview mode in a globally accessible place 2) Make it possible for MergeResultWindow to access the Overview widget. 3) Keep a copy of the overview mode in MergeResultWindow, and set it from KDiff3App at the same time as the one in m_pOverview. I chose to implement the third option as it was the easiest. I didn't know how to do the other two as I don't know enough about the program's structure. I hope you find it useful and include it in the next release. And thanks for the great work you did so far! -- Vladan Bato vb...@ie... |