Author: jstowers
Date: Sun Feb 10 00:38:33 2008
New Revision: 1296
URL: http://svn.gnome.org/viewvc/conduit?rev=1296&view=rev
Log:
2008-02-10 John Stowers <[EMAIL PROTECTED]>
* data/conduit.glade: Add conflict_* and deleted_* radio items to a
group
so that only one can be active at a time.
* conduit/Conduit.py:
* conduit/Conflict.py:
* conduit/gtkui/ConflictResolver.py:
* conduit/modules/TestModule.py:
* data/icons/hicolor/16x16/actions/Makefile.am: Add an icon for
conflict-skip and swap the function of conflict-ask. The states for
conflict
resolution (by the user) are now ask->skip->put/delete->skip
Added:
trunk/data/icons/hicolor/16x16/actions/conduit-conflict-ask.png
- copied unchanged from r1294,
/trunk/data/icons/hicolor/16x16/actions/conduit-conflict-skip.png
Modified:
trunk/ChangeLog
trunk/conduit/Conduit.py
trunk/conduit/Conflict.py
trunk/conduit/gtkui/ConflictResolver.py
trunk/conduit/modules/TestModule.py
trunk/data/conduit.glade
trunk/data/icons/hicolor/16x16/actions/Makefile.am
trunk/data/icons/hicolor/16x16/actions/conduit-conflict-skip.png
Modified: trunk/conduit/Conduit.py
==============================================================================
--- trunk/conduit/Conduit.py (original)
+++ trunk/conduit/Conduit.py Sun Feb 10 00:38:33 2008
@@ -14,10 +14,10 @@
CONFLICT_POLICY_NAMES = ("conflict", "deleted")
CONFLICT_POLICY_VALUES = ("ask","skip","replace")
CONFLICT_POLICY_VALUE_ICONS = {
- "conflict_ask" : "conduit-conflict-skip",
+ "conflict_ask" : "conduit-conflict-ask",
"conflict_skip" : "conduit-conflict-skip",
"conflict_replace" : "conduit-conflict-right",
- "deleted_ask" : "conduit-conflict-skip",
+ "deleted_ask" : "conduit-conflict-ask",
"deleted_skip" : "conduit-conflict-skip",
"deleted_replace" : "conduit-conflict-delete"
}
Modified: trunk/conduit/Conflict.py
==============================================================================
--- trunk/conduit/Conflict.py (original)
+++ trunk/conduit/Conflict.py Sun Feb 10 00:38:33 2008
@@ -5,10 +5,11 @@
License: GPLv2
"""
#ENUM of directions when resolving a conflict
-CONFLICT_SKIP = 0 #dont draw an arrow - draw a -x-
-CONFLICT_COPY_SOURCE_TO_SINK = 1 #right drawn arrow
-CONFLICT_COPY_SINK_TO_SOURCE = 2 #left drawn arrow
-CONFLICT_DELETE = 3 #double headed arrow
+CONFLICT_ASK = 0
+CONFLICT_SKIP = 1
+CONFLICT_COPY_SOURCE_TO_SINK = 2
+CONFLICT_COPY_SINK_TO_SOURCE = 3
+CONFLICT_DELETE = 4
class Conflict:
"""
Modified: trunk/conduit/gtkui/ConflictResolver.py
==============================================================================
--- trunk/conduit/gtkui/ConflictResolver.py (original)
+++ trunk/conduit/gtkui/ConflictResolver.py Sun Feb 10 00:38:33 2008
@@ -209,9 +209,9 @@
if (source,sink) not in self.partnerships:
#create a header row
header = ConflictHeader(source, sink)
- self.partnerships[(source,sink)] = self.model.append(None,
(header, Conflict.CONFLICT_SKIP) )
+ self.partnerships[(source,sink)] = self.model.append(None,
(header, Conflict.CONFLICT_ASK) )
- self.model.append(self.partnerships[(source,sink)], (conflict,
Conflict.CONFLICT_SKIP) )
+ self.model.append(self.partnerships[(source,sink)], (conflict,
Conflict.CONFLICT_ASK) )
#FIXME: Do this properly with model signals and a count function
#update the expander label and the standalone window title
@@ -260,9 +260,13 @@
conflict = model[path][CONFLICT_IDX]
#do as the user inducated with the arrow
- if direction == Conflict.CONFLICT_SKIP:
+ if direction == Conflict.CONFLICT_ASK:
log.debug("Not resolving")
return
+ elif direction == Conflict.CONFLICT_SKIP:
+ log.debug("Skipping conflict")
+ resolved.append(rowref)
+ return
elif direction == Conflict.CONFLICT_COPY_SOURCE_TO_SINK:
log.debug("Resolving source data --> sink")
data = conflict.sourceData
@@ -405,15 +409,22 @@
self.image =
gtk.icon_theme_get_default().load_icon("conduit-conflict-skip",16,0)
elif direction == Conflict.CONFLICT_DELETE:
self.image =
gtk.icon_theme_get_default().load_icon("conduit-conflict-delete",16,0)
+ elif direction == Conflict.CONFLICT_ASK:
+ self.image =
gtk.icon_theme_get_default().load_icon("conduit-conflict-ask",16,0)
else:
self.image = None
def on_activate(self, event, widget, path, background_area, cell_area,
flags):
model = widget.get_model()
- #Click toggles between --> and <-- and -x- but only within the list
- #of valid choices
conflict = model[path][CONFLICT_IDX]
- curIdx = list(conflict.choices).index(model[path][DIRECTION_IDX])
+ #Click toggles between --> and <-- and -x- but only within the list
+ #of valid choices. If at the end of the valid choices, then loop around
+ try:
+ curIdx = list(conflict.choices).index(model[path][DIRECTION_IDX])
+ except ValueError:
+ #Because CONFLICT_ASK is never a valid choice, its just the default
+ #to make the user have to acknowledge the conflict
+ curIdx = 0
if curIdx == len(conflict.choices) - 1:
model[path][DIRECTION_IDX] = conflict.choices[0]
Modified: trunk/conduit/modules/TestModule.py
==============================================================================
--- trunk/conduit/modules/TestModule.py (original)
+++ trunk/conduit/modules/TestModule.py Sun Feb 10 00:38:33 2008
@@ -649,14 +649,11 @@
_TestBase.__init__(self)
DataProvider.DataSink.__init__(self)
- def refresh(self):
- DataProvider.DataSink.refresh(self)
-
def put(self, data, overwrite, LUID=None):
DataProvider.DataSink.put(self, data, overwrite, LUID)
+ newData = TestDataType(data.get_UID())
if not overwrite:
- raise
Exceptions.SynchronizeConflictError(conduit.datatypes.COMPARISON_UNKNOWN, data,
TestDataType('0'))
- newData = TestDataType(data.get_UID()+self._name_)
+ raise
Exceptions.SynchronizeConflictError(conduit.datatypes.COMPARISON_UNKNOWN, data,
newData)
return newData.get_rid()
def get_UID(self):
Modified: trunk/data/conduit.glade
==============================================================================
--- trunk/data/conduit.glade (original)
+++ trunk/data/conduit.glade Sun Feb 10 00:38:33 2008
@@ -516,6 +516,7 @@
<property name="label" translatable="yes">Replace the Older
Item</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
+ <property name="group">conflict_ask</property>
</widget>
</child>
<child>
@@ -524,6 +525,7 @@
<property name="label" translatable="yes">Skip</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
+ <property name="group">conflict_ask</property>
</widget>
</child>
</widget>
@@ -557,6 +559,7 @@
<property name="label" translatable="yes">Delete the
Corresponding Item</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
+ <property name="group">deleted_ask</property>
</widget>
</child>
<child>
@@ -566,6 +569,7 @@
<property name="label" translatable="yes">Skip</property>
<property name="use_underline">True</property>
<property name="draw_as_radio">True</property>
+ <property name="group">deleted_ask</property>
</widget>
</child>
</widget>
Modified: trunk/data/icons/hicolor/16x16/actions/Makefile.am
==============================================================================
--- trunk/data/icons/hicolor/16x16/actions/Makefile.am (original)
+++ trunk/data/icons/hicolor/16x16/actions/Makefile.am Sun Feb 10 00:38:33 2008
@@ -8,7 +8,8 @@
conduit-conflict-delete.png \
conduit-conflict-right.png \
conduit-conflict-left.png \
- conduit-conflict-skip.png
+ conduit-conflict-skip.png \
+ conduit-conflict-ask.png
noinst_DATA =
Modified: trunk/data/icons/hicolor/16x16/actions/conduit-conflict-skip.png
==============================================================================
Binary files. No diff available.
_______________________________________________
SVN-commits-list mailing list (read only)
http://mail.gnome.org/mailman/listinfo/svn-commits-list
Want to limit the commits to a few modules? Go to above URL, log in to edit
your options and select the modules ('topics') you want.
Module maintainer? It is possible to set the reply-to to your development
mailing list. Email [EMAIL PROTECTED] if interested.