summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp138
-rw-r--r--kaddressbook/kabcore.h7
2 files changed, 100 insertions, 45 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index 96603e6..6807bed 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -190,15 +190,6 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const
connect( mViewManager, SIGNAL( selected( const QString& ) ),
SLOT( setContactSelected( const QString& ) ) );
-
- //small devices show only the details view. bigger devices can edit the entry
- if (KGlobal::getDesktopSize() > KGlobal::Small ) {
- connect( mViewManager, SIGNAL( executed( const QString& ) ),
- SLOT( editContact( const QString& ) ) );
- }
- else
- {
- connect( mViewManager, SIGNAL( executed( const QString& ) ),
- SLOT( showContact( const QString& ) ) );
- }
+ connect( mViewManager, SIGNAL( executed( const QString& ) ),
+ SLOT( executeContact( const QString& ) ) );
connect( mViewManager, SIGNAL( deleteRequest( ) ),
@@ -208,4 +199,5 @@ KABCore::KABCore( KXMLGUIClient *client, bool readWrite, QWidget *parent, const
connect( mExtensionManager, SIGNAL( modified( const KABC::Addressee::List& ) ), this, SLOT( extensionModified( const KABC::Addressee::List& ) ) );
+ connect( mExtensionManager, SIGNAL( changedActiveExtension( int ) ), this, SLOT( extensionChanged( int ) ) );
connect( mXXPortManager, SIGNAL( modified() ),
@@ -247,8 +239,9 @@ KABCore::~KABCore()
void KABCore::restoreSettings()
{
+ mMultipleViewsAtOnce = KABPrefs::instance()->mMultipleViewsAtOnce;
+
bool state;
- //small devices have at startup the details view disabled
- if (KGlobal::getDesktopSize() > KGlobal::Small )
+ if (mMultipleViewsAtOnce)
state = KABPrefs::instance()->mDetailsPageVisible;
else
@@ -262,5 +255,5 @@ void KABCore::restoreSettings()
mActionJumpBar->setChecked( state );
setJumpButtonBarVisible( state );
-
+/*US
QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter;
if ( splitterSize.count() == 0 ) {
@@ -278,26 +271,26 @@ void KABCore::restoreSettings()
}
-#ifndef KAB_EMBEDDED
- QValueList<int> splitterSize = KABPrefs::instance()->mExtensionsSplitter;
+*/
+ mViewManager->restoreSettings();
+ mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField );
+ mExtensionManager->restoreSettings();
+
+ QValueList<int> splitterSize = KABPrefs::instance()->mDetailsSplitter;
if ( splitterSize.count() == 0 ) {
splitterSize.append( width() / 2 );
splitterSize.append( width() / 2 );
}
- mExtensionBarSplitter->setSizes( splitterSize );
-
- splitterSize = KABPrefs::instance()->mDetailsSplitter;
+ mMiniSplitter->setSizes( splitterSize );
+ if ( mExtensionBarSplitter ) {
+ splitterSize = KABPrefs::instance()->mExtensionsSplitter;
if ( splitterSize.count() == 0 ) {
- splitterSize.append( height() / 2 );
- splitterSize.append( height() / 2 );
+ splitterSize.append( width() / 2 );
+ splitterSize.append( width() / 2 );
}
- mDetailsSplitter->setSizes( splitterSize );
+ mExtensionBarSplitter->setSizes( splitterSize );
- mExtensionManager->restoreSettings();
+ }
-#endif //KAB_EMBEDDED
- mViewManager->restoreSettings();
- mIncSearchWidget->setCurrentItem( KABPrefs::instance()->mCurrentIncSearchField );
- mExtensionManager->restoreSettings();
}
@@ -431,5 +424,5 @@ void KABCore::setContactSelected( const QString &uid )
{
KABC::Addressee addr = mAddressBook->findByUid( uid );
-//US if ( !mDetails->isHidden() )
+ if ( !mDetails->isHidden() )
mDetails->setAddressee( addr );
@@ -1058,12 +1051,19 @@ void KABCore::editContact( const QString &uid )
/**
- Shows the detail view for the given uid. If the uid is QString::null,
+ Shows or edits the detail view for the given uid. If the uid is QString::null,
the method will try to find a selected addressee in the view.
- We call this method only if we use a small device. Bigger devices are calling editContact instead
*/
-void KABCore::showContact( const QString &uid /*US = QString::null*/ )
+void KABCore::executeContact( const QString &uid /*US = QString::null*/ )
{
- setDetailsVisible( true );
- mActionDetails->setChecked(true);
+ if ( mMultipleViewsAtOnce )
+ {
+ editContact( uid );
+ }
+ else
+ {
+ setDetailsVisible( true );
+ mActionDetails->setChecked(true);
+ }
+
}
@@ -1115,5 +1115,6 @@ void KABCore::redo()
void KABCore::setJumpButtonBarVisible( bool visible )
{
- if (KGlobal::getDesktopSize() > KGlobal::Small ) {
+ if (mMultipleViewsAtOnce)
+ {
if ( visible )
mJumpButtonBar->show();
@@ -1123,5 +1124,5 @@ void KABCore::setJumpButtonBarVisible( bool visible )
else
{
- // for the Z5500, show the jumpbar only if "the details are hidden" == "viewmanager are shown"
+ // show the jumpbar only if "the details are hidden" == "viewmanager are shown"
if (mViewManager->isVisible())
{
@@ -1137,4 +1138,6 @@ void KABCore::setJumpButtonBarVisible( bool visible )
}
}
+
+
void KABCore::setDetailsToState()
{
@@ -1146,10 +1149,15 @@ void KABCore::setDetailsToState()
void KABCore::setDetailsVisible( bool visible )
{
- //US "details visible" has two different meanings for small devices like the 5500
- // compared with large devices like the c series.
+ if (visible && mDetails->isHidden())
+ {
+ KABC::Addressee::List addrList = mViewManager->selectedAddressees();
+ if ( addrList.count() > 0 )
+ mDetails->setAddressee( addrList[ 0 ] );
+ }
- // small devices: mDetails is always visible. But we switch between
+ // mMultipleViewsAtOnce=false: mDetails is always visible. But we switch between
// the listview and the detailview. We do that by changing the splitbar size.
- if (KGlobal::getDesktopSize() > KGlobal::Small ) {
+ if (mMultipleViewsAtOnce)
+ {
if ( visible )
mDetails->show();
@@ -1162,5 +1170,4 @@ void KABCore::setDetailsVisible( bool visible )
mViewManager->hide();
mDetails->show();
-// mDetails->show();
}
else {
@@ -1169,8 +1176,50 @@ void KABCore::setDetailsVisible( bool visible )
}
setJumpButtonBarVisible( !visible );
+ }
+
+}
+
+void KABCore::extensionChanged( int id )
+{
+ //change the details view only for non desktop systems
+#ifndef DESKTOP_VERSION
+
+ if (id == 0)
+ {
+ //the user disabled the extension.
+
+ if (mMultipleViewsAtOnce)
+ { // enable detailsview again
+ setDetailsVisible( true );
+ mActionDetails->setChecked( true );
+ }
+ else
+ { //go back to the listview
+ setDetailsVisible( false );
+ mActionDetails->setChecked( false );
+ mActionDetails->setEnabled(true);
+ }
}
+ else
+ {
+ //the user enabled the extension.
+ setDetailsVisible( false );
+ mActionDetails->setChecked( false );
+
+ if (!mMultipleViewsAtOnce)
+ {
+ mActionDetails->setEnabled(false);
+ }
+
+ mExtensionManager->setSelectionChanged();
+
+ }
+
+#endif// DESKTOP_VERSION
+
}
+
void KABCore::extensionModified( const KABC::Addressee::List &list )
{
@@ -1245,5 +1294,5 @@ void KABCore::openConfigDialog()
ConfigureDialog->showMaximized();
if ( ConfigureDialog->exec() )
- KMessageBox::information( this, i18n("If you configured \nExtensions,\nplease restart!\n") );
+ KMessageBox::information( this, i18n("Some changes are only\neffective after a restart!\n") );
delete ConfigureDialog;
}
@@ -1746,5 +1795,8 @@ void KABCore::addActionsManually()
mActionEditAddressee->plug( fileMenu );
- mActionEditAddressee->plug( tb );
+ if ((KGlobal::getDesktopSize() > KGlobal::Small ) ||
+ (!KABPrefs::instance()->mMultipleViewsAtOnce ))
+ mActionEditAddressee->plug( tb );
+
fileMenu->insertSeparator();
mActionSave->plug( fileMenu );
@@ -1794,5 +1846,5 @@ void KABCore::addActionsManually()
mActionJumpBar->plug( settingsMenu );
mActionDetails->plug( settingsMenu );
- if (KGlobal::getDesktopSize() == KGlobal::Small )
+ if (!KABPrefs::instance()->mMultipleViewsAtOnce )
mActionDetails->plug( tb );
settingsMenu->insertSeparator();
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h
index a45c4c6..d4d28f1 100644
--- a/kaddressbook/kabcore.h
+++ b/kaddressbook/kabcore.h
@@ -303,8 +303,8 @@ class KABCore : public QWidget
/**
- Shows the detail view for the given uid. If the uid is QString::null,
+ Shows or edits the detail view for the given uid. If the uid is QString::null,
the method will try to find a selected addressee in the view.
*/
- void showContact( const QString &uid /*US = QString::null*/ );
+ void executeContact( const QString &uid /*US = QString::null*/ );
/**
@@ -339,4 +339,5 @@ class KABCore : public QWidget
void importFromOL();
void extensionModified( const KABC::Addressee::List &list );
+ void extensionChanged( int id );
void clipboardDataChanged();
void updateActionMenu();
@@ -382,4 +383,6 @@ class KABCore : public QWidget
bool mModified;
bool mIsPart;
+ bool mMultipleViewsAtOnce;
+
//US file menu