22 #include <tdelocale.h>
23 #include <kwidgetlist.h>
27 #include <tqpushbutton.h>
29 #include "memberinfo.h"
31 #include "multiconflictdialog.h"
33 class ChangeItem :
public KWidgetListItem
36 ChangeItem( KWidgetList *parent,
const QSync::SyncChange &change )
37 : KWidgetListItem( parent ),
40 TQGridLayout *layout =
new TQGridLayout(
this, 2, 1, KDialog::marginHint(), KDialog::spacingHint() );
42 MemberInfo mi( change.member() );
43 layout->addWidget(
new TQLabel( mi.name(),
this ), 0, 0 );
46 switch ( change.changeType() ) {
47 case QSync::SyncChange::UnknownChange:
48 type = i18n(
"Unknown" );
50 case QSync::SyncChange::AddedChange:
51 type = i18n(
"Added" );
53 case QSync::SyncChange::DeletedChange:
54 type = i18n(
"Deleted" );
56 case QSync::SyncChange::ModifiedChange:
57 type = i18n(
"Modified" );
59 case QSync::SyncChange::UnmodifiedChange:
61 type = i18n(
"Unmodified" );
65 layout->addWidget(
new TQLabel( type,
this ), 1, 0 );
68 QSync::SyncChange change()
const {
return mChange; }
71 QSync::SyncChange mChange;
74 MultiConflictDialog::MultiConflictDialog( QSync::SyncMapping &mapping, TQWidget *parent )
79 for (
int i = 0; i < mMapping.changesCount(); ++i ) {
80 QSync::SyncChange change = mMapping.changeAt( i );
81 if ( change.isValid() ) {
82 ChangeItem *item =
new ChangeItem( mWidgetList, change );
83 mWidgetList->appendItem( item );
87 mWidgetList->setFocus();
90 MultiConflictDialog::~MultiConflictDialog()
94 void MultiConflictDialog::useSelectedChange()
96 ChangeItem *item =
static_cast<ChangeItem*
>( mWidgetList->selectedItem() );
100 mMapping.solve( item->change() );
105 void MultiConflictDialog::duplicateChange()
107 mMapping.duplicate();
112 void MultiConflictDialog::ignoreChange()
119 void MultiConflictDialog::initGUI()
121 TQGridLayout *layout =
new TQGridLayout(
this, 3, 3, KDialog::marginHint(), KDialog::spacingHint() );
123 layout->addMultiCellWidget(
new TQLabel( i18n(
"A conflict has appeared, please solve it manually." ),
this ), 0, 0, 0, 2 );
125 mWidgetList =
new KWidgetList(
this );
126 layout->addMultiCellWidget( mWidgetList, 1, 1, 0, 2 );
128 TQPushButton *button =
new TQPushButton( i18n(
"Use Selected Item" ),
this );
129 connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( useSelectedChange() ) );
130 layout->addWidget( button, 2, 0 );
132 button =
new TQPushButton( i18n(
"Duplicate Items" ),
this );
133 connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( duplicateChange() ) );
134 layout->addWidget( button, 2, 1 );
136 button =
new TQPushButton( i18n(
"Ignore Conflict" ),
this );
137 connect( button, TQT_SIGNAL( clicked() ), TQT_SLOT( ignoreChange() ) );
138 layout->addWidget( button, 2, 2 );
141 #include "multiconflictdialog.moc"