6 #include "ConflictDialog.h"
11 #include <QDialogButtonBox>
12 #include <QPushButton>
13 #include <QHBoxLayout>
14 #include <QVBoxLayout>
19 ConflictDialog::ConflictDialog(
QWidget *parent ) :
21 m_mergeItem( nullptr ),
23 m_resolveAction(ConflictDialog::AskUser)
28 void ConflictDialog::setMergeItem( MergeItem *item )
33 void ConflictDialog::stopAutoResolve()
35 m_resolveAction = ConflictDialog::AskUser;
38 void ConflictDialog::open()
40 if( m_mergeItem ==
nullptr ) {
44 switch( m_resolveAction ) {
45 case ConflictDialog::AskUser:
49 case ConflictDialog::PreferLocal:
50 m_mergeItem->setResolution( MergeItem::A );
51 emit resolveConflict( m_mergeItem );
53 case ConflictDialog::PreferCloud:
54 m_mergeItem->setResolution( MergeItem::B );
55 emit resolveConflict( m_mergeItem );
65 switch(standardButton) {
69 switch( actionRole ) {
70 case ConflictDialog::Local:
71 m_mergeItem->setResolution( MergeItem::A );
72 emit resolveConflict( m_mergeItem );
74 case ConflictDialog::Cloud:
75 m_mergeItem->setResolution( MergeItem::B );
76 emit resolveConflict( m_mergeItem );
78 case ConflictDialog::AllLocal:
79 m_mergeItem->setResolution( MergeItem::A );
80 m_resolveAction = ConflictDialog::PreferLocal;
81 emit resolveConflict( m_mergeItem );
83 case ConflictDialog::AllCloud:
84 m_mergeItem->setResolution( MergeItem::B );
85 m_resolveAction = ConflictDialog::PreferCloud;
86 emit resolveConflict( m_mergeItem );
98 void ConflictDialog::prepareLayout()
101 qDeleteAll( children() );
110 localButton->
setProperty(
"ActionRole", ConflictDialog::Local );
111 cloudButton->
setProperty(
"ActionRole", ConflictDialog::Cloud );
112 allLocalButton->
setProperty(
"ActionRole", ConflictDialog::AllLocal );
113 allCloudButton->
setProperty(
"ActionRole", ConflictDialog::AllCloud );
121 QString localHeaderText = tr(
"Local placemark" );
122 QString localDetailText = tr(
"Path: %0 <br /> Name: %1 <br /> Description: %2 <br /> Status: %3" )
123 .
arg( m_mergeItem->pathA(), m_mergeItem->nameA(), m_mergeItem->descriptionA() );
124 switch( m_mergeItem->actionA() ) {
125 case MergeItem::Changed:
126 localDetailText = localDetailText.
arg( tr(
"Changed" ) );
128 case MergeItem::Deleted:
129 localDetailText = localDetailText.
arg( tr(
"Deleted" ) );
135 QLabel *localHeaderLabel =
new QLabel( localHeaderText );
136 QLabel *localDetailLabel =
new QLabel( localDetailText );
137 leftLayout->
addWidget( localHeaderLabel );
138 leftLayout->
addWidget( localDetailLabel );
141 QString cloudHeaderText = tr(
"Cloud placemark" );
142 QString cloudDetailText = tr(
"Path: %0 <br /> Name: %1 <br /> Description: %2 <br /> Status: %3" )
143 .
arg( m_mergeItem->pathB(), m_mergeItem->nameB(), m_mergeItem->descriptionB() );
144 switch( m_mergeItem->actionB() ) {
145 case MergeItem::Changed:
146 cloudDetailText = cloudDetailText.
arg( tr(
"Changed" ) );
148 case MergeItem::Deleted:
149 cloudDetailText = cloudDetailText.
arg( tr(
"Deleted" ) );
154 QLabel *cloudHeaderLabel =
new QLabel( cloudHeaderText );
155 QLabel *cloudDetailLabel =
new QLabel( cloudDetailText );
156 rightLayout->
addWidget( cloudHeaderLabel );
157 rightLayout->
addWidget( cloudDetailLabel );
164 QString descriptionText = tr(
"A bookmark on this device conflicts " \
165 "with a cloud bookmark. Which one do " \
166 "you want to keep?" );
167 descriptionLabel->
setText( descriptionText );
170 mainLayout->
addWidget( descriptionLabel );
174 setLayout( mainLayout );
175 setWindowTitle( tr(
"Synchronization Conflict" ) );
183 #include "moc_ConflictDialog.cpp"