Ejemplo n.º 1
0
void KMFolder::setUserWhoField( const QString& whoField, bool writeConfig )
{
  if ( mUserWhoField == whoField && !whoField.isEmpty() )
    return;

  if ( whoField.isEmpty() )
  {
    // default setting
    const KPIMIdentities::Identity & identity =
      kmkernel->identityManager()->identityForUoidOrDefault( mIdentity );

    QString identityfcc, identitydrafts, identitytemplates;
    {
      /* KPIMIdentities::Identity::fcc(), KPIMIdentities::Identity::drafts() and KPIMIdentities::Identity::templates()
         using akonadi, so read values from config file directly */
      const KConfig config( "emailidentities" );
      const QStringList identities = config.groupList().filter( QRegExp( "^Identity #\\d+$" ) );
      for ( QStringList::const_iterator group = identities.constBegin(); group != identities.constEnd(); ++group ) {
        const KConfigGroup configGroup( &config, *group );
        if ( configGroup.readEntry( "uoid", 0U ) == identity.uoid() ) {
          identityfcc = configGroup.readEntry( "Fcc2", QString() );
          identitydrafts = configGroup.readEntry( "Drafts2", QString() );
          identitytemplates = configGroup.readEntry( "Templates2", QString() );
          break;
        }
      }
    }

    if ( isSystemFolder() && folderType() != KMFolderTypeImap ) {
      // local system folders
      if ( this == kmkernel->inboxFolder() ||
           this == kmkernel->trashFolder() )
        mWhoField = "From";
      if ( this == kmkernel->outboxFolder() ||
           this == kmkernel->sentFolder() ||
           this == kmkernel->templatesFolder() ||
           this == kmkernel->draftsFolder() )
        mWhoField = "To";
    } else if ( identitydrafts == idString() ||
                identitytemplates == idString() ||
                identityfcc == idString() )
      // drafts, templates or sent of the identity
      mWhoField = "To";
    else
      mWhoField = "From";
  } else if ( whoField == "From" || whoField == "To" )
    // set the whoField according to the user-setting
    mWhoField = whoField;
  else {
    // this should not happen...
    kDebug() << "Illegal setting" << whoField << "for userWhoField!";
    return; // don't use the value
  }
  mUserWhoField = whoField;

  if ( writeConfig ) {
    mStorage->writeConfig();
    emit viewConfigChanged();
  }
}
Ejemplo n.º 2
0
  void WndMacros::initDBView()
  {
    // connect status bar for subsequent indications of model changes
    connect(&modelMacros,SIGNAL(modelUpdateStart(db::Model::ModelUpdateReason)),static_cast<frame::StatusBar*>(frame::MainWindow::instance().statusBar()),SLOT(indicateViewUpdate(db::Model::ModelUpdateReason)));
    connect(&modelMacros,SIGNAL(modelUpdateDone(int)),static_cast<frame::StatusBar*>(frame::MainWindow::instance().statusBar()),SLOT(unindicateViewUpdate(int)));

    // block model signals to avoid emitting signal "activeViewConfigItemChanged" in load method called in viewConfigChanged
    modelViews.blockSignals(true);
    modelFilters.blockSignals(true);
    // load data base views
    viewConfigChanged(Resource::SETTINGS_DB_VIEWFORMATS);
    // load data base views
    viewConfigChanged(Resource::SETTINGS_DB_VIEWFILTERS);
    // activate model signals again
    modelViews.blockSignals(false);
    modelFilters.blockSignals(false);
    // build inital view model
    modelMacros.updateModel(Model::UPDATE_INITIAL,static_cast<const ViewFormat*>(modelViews.getActiveViewConfig()),static_cast<const ViewFilter*>(modelFilters.getActiveViewConfig()));
  }