-rw-r--r-- | kabc/addresseeview.cpp | 66 | ||||
-rw-r--r-- | kabc/addresseeview.h | 18 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 7 |
3 files changed, 89 insertions, 2 deletions
diff --git a/kabc/addresseeview.cpp b/kabc/addresseeview.cpp index b4717d7..487e8a5 100644 --- a/kabc/addresseeview.cpp +++ b/kabc/addresseeview.cpp @@ -31,5 +31,10 @@ #include <qregexp.h> #include <qfile.h> +#include <qvbox.h> +#include <qlabel.h> +#include <qwidget.h> +#include <qlayout.h> #include <qapplication.h> +#include <qpushbutton.h> @@ -400,2 +405,63 @@ void AddresseeView::addTag(const QString & tag,const QString & text) } } + +AddresseeChooser::AddresseeChooser( KABC::Addressee loc, KABC::Addressee rem, bool takeloc, QWidget *parent, const char *name ) : KDialogBase(parent,name, + true ,i18n("Conflict! Please choose Adressee!"),Ok|User1|Close,Close, false) +{ + findButton( Close )->setText( i18n("Cancel Sync")); + findButton( Ok )->setText( i18n("Remote")); + findButton( User1 )->setText( i18n("Local")); + QWidget* topframe = new QWidget( this ); + //QVBox* topframe = new QVBox( this ); + setMainWidget( topframe ); + QBoxLayout* bl; + if ( QApplication::desktop()->width() < 640 ) { + bl = new QVBoxLayout( topframe ); + + } else { + bl = new QHBoxLayout( topframe ); + + } + QVBox* subframe = new QVBox( topframe ); + bl->addWidget(subframe ); + QLabel* lab = new QLabel( i18n("Local Addressee"), subframe ); + AddresseeView * av = new AddresseeView( subframe ); + av->setAddressee( loc ); + subframe = new QVBox( topframe ); + bl->addWidget(subframe ); + lab = new QLabel( i18n("Remote Addressee"), subframe ); + av = new AddresseeView( subframe ); + av->setAddressee( rem ); + + QObject::connect(findButton( Ok ),SIGNAL(clicked()), + SLOT(slot_remote())); + QObject::connect(this,SIGNAL(user1Clicked()), + SLOT(slot_local())); +#ifndef DESKTOP_VERSION + showMaximized(); +#else + resize ( 640, 400 ); +#endif +} + +int AddresseeChooser::executeD( bool local ) +{ + mSyncResult = 3; + if ( local ) + findButton( User1 )->setFocus(); + else + findButton( Ok )->setFocus(); + exec(); + qDebug("returning %d ",mSyncResult ); + return mSyncResult; +} +void AddresseeChooser::slot_remote() +{ + mSyncResult = 2; + accept(); +} +void AddresseeChooser::slot_local() +{ + mSyncResult = 1; + accept(); +} diff --git a/kabc/addresseeview.h b/kabc/addresseeview.h index 1865fc4..689d997 100644 --- a/kabc/addresseeview.h +++ b/kabc/addresseeview.h @@ -24,4 +24,5 @@ #include <kabc/addressee.h> +#include <kdialogbase.h> //US #include <ktextbrowser.h> @@ -55,4 +56,21 @@ class AddresseeView : public QTextBrowser AddresseeViewPrivate *d; }; +class AddresseeChooser : public KDialogBase +{ + Q_OBJECT + + public: + AddresseeChooser( KABC::Addressee loc, KABC::Addressee rem, bool takeloc, QWidget *parent = 0, const char *name = 0 ); + + int executeD( bool local ); + + private: + int mSyncResult; + + private slots: + void slot_remote(); + void slot_local(); + +}; } diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 74c10d2..b1a951c 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp @@ -2653,7 +2653,9 @@ int KABCore::takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, i #endif qDebug("conflict! ************************************** "); - result = 1; + { + KPIM::AddresseeChooser acd ( *local,*remote, localIsNew , this ); + result = acd.executeD(localIsNew); return result; - + } break; case SYNC_PREF_FORCE_LOCAL: @@ -2726,4 +2728,5 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo } } + fullDateRange = true; // debug only! if ( fullDateRange ) mLastAddressbookSync = QDateTime::currentDateTime().addDays( -100*365); |