~ubuntu-branches/ubuntu/oneiric/kdepim/oneiric-updates

« back to all changes in this revision

Viewing changes to kmail/kmail_part.cpp

  • Committer: Package Import Robot
  • Author(s): Philip Muškovac
  • Date: 2011-06-28 19:33:24 UTC
  • mfrom: (0.2.13) (0.1.13 sid)
  • Revision ID: package-import@ubuntu.com-20110628193324-8yvjs8sdv9rdoo6c
Tags: 4:4.7.0-0ubuntu1
* New upstream release
  - update install files
  - add missing kdepim-doc package to control file
  - Fix Vcs lines
  - kontact breaks/replaces korganizer << 4:4.6.80
  - tighten the dependency of kdepim-dev on libkdepim4 to fix lintian error

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
#include "kmmainwidget.h"
31
31
#include "kmstartup.h"
32
32
#include "aboutdata.h"
33
 
#include "kmfolder.h"
34
 
#include "accountmanager.h"
35
 
#include "mainfolderview.h"
36
 
#include <QPixmap>
 
33
 
37
34
#include <QVBoxLayout>
38
 
using KMail::AccountManager;
39
35
 
40
36
#include <kparts/mainwindow.h>
41
37
#include <kpluginfactory.h>
45
41
#include <ksettings/dispatcher.h>
46
42
#include <kmailpartadaptor.h>
47
43
#include <kicon.h>
 
44
#include <akonadi/collection.h>
 
45
#include <akonadi/entitydisplayattribute.h>
 
46
#include <akonadi/changerecorder.h>
 
47
#include "foldertreeview.h"
 
48
#include "tagactionmanager.h"
 
49
#include "foldershortcutactionmanager.h"
48
50
 
49
 
#include <QLayout>
50
51
#include <kglobal.h>
51
52
 
52
53
K_PLUGIN_FACTORY( KMailFactory, registerPlugin<KMailPart>(); )
79
80
  // any dead letters?
80
81
  mKMailKernel->recoverDeadLetters();
81
82
 
82
 
  kmsetSignalHandler(kmsignalHandler);
83
83
  kmkernel->setupDBus(); // Ok. We are ready for D-Bus requests.
84
84
  (void) new KmailpartAdaptor( this );
85
85
  QDBusConnection::sessionBus().registerObject( "/KMailPart", this );
119
119
  mStatusBar->addStatusBarItem( mainWidget->vacationScriptIndicator(), 2, false );
120
120
 
121
121
  // Get to know when the user clicked on a folder in the KMail part and update the headerWidget of Kontact
122
 
  connect( mainWidget->folderViewManager(), SIGNAL(folderActivated(KMFolder*)), this, SLOT(exportFolder(KMFolder*)) );
123
 
  connect( mainWidget->mainFolderView(), SIGNAL(iconChanged(FolderViewItem*)),
124
 
           this, SLOT(slotIconChanged(FolderViewItem*)) );
125
 
  connect( mainWidget->mainFolderView(), SIGNAL(nameChanged(FolderViewItem*)),
126
 
           this, SLOT(slotNameChanged(FolderViewItem*)) );
127
 
 
 
122
  connect( mainWidget->folderTreeView(), SIGNAL( currentChanged( const Akonadi::Collection & ) ),
 
123
           this, SLOT( slotFolderChanged( const Akonadi::Collection& ) ) );
 
124
  connect( kmkernel->folderCollectionMonitor(), SIGNAL(collectionChanged( const Akonadi::Collection &, const QSet<QByteArray> &)),
 
125
           this, SLOT(slotCollectionChanged( const Akonadi::Collection &, const QSet<QByteArray> &)));
128
126
  setXMLFile( "kmail_part.rc", true );
129
127
#endif
130
128
 
136
134
  kDebug() << "Closing last KMMainWin: stopping mail check";
137
135
  // Running KIO jobs prevent kapp from exiting, so we need to kill them
138
136
  // if they are only about checking mail (not important stuff like moving messages)
139
 
  kmkernel->abortMailCheck();
140
 
  kmkernel->acctMgr()->cancelMailCheck();
141
 
 
142
137
  mainWidget->destruct();
143
138
  kmkernel->cleanup();
144
139
  delete kmkernel;
153
148
  return true;
154
149
}
155
150
 
156
 
void KMailPart::exportFolder( KMFolder *folder )
157
 
{
158
 
  FolderViewItem* fti = static_cast<FolderViewItem *>( mainWidget->mainFolderView()->currentItem() );
159
 
 
160
 
  if ( folder != 0 )
161
 
    emit textChanged( folder->label() );
162
 
 
163
 
  if ( fti )
164
 
    emit iconChanged( KIcon( fti->normalIcon() ).pixmap( 22, 22 ) );
165
 
}
166
 
 
167
 
void KMailPart::slotIconChanged( FolderViewItem *fti )
168
 
{
169
 
  emit iconChanged( KIcon( fti->normalIcon() ).pixmap( 22, 22 ) );
170
 
}
171
 
 
172
 
void KMailPart::slotNameChanged( FolderViewItem *fti )
173
 
{
174
 
  emit textChanged( fti->folder()->label() );
 
151
void KMailPart::slotFolderChanged( const Akonadi::Collection &col )
 
152
{
 
153
  if ( col.isValid() ) {
 
154
    emit textChanged( col.name() );
 
155
    if ( col.hasAttribute<Akonadi::EntityDisplayAttribute>() &&
 
156
         !col.attribute<Akonadi::EntityDisplayAttribute>()->iconName().isEmpty() ) {
 
157
      emit iconChanged( col.attribute<Akonadi::EntityDisplayAttribute>()->icon().pixmap( 22, 22 ) );
 
158
    }
 
159
  }
 
160
}
 
161
void KMailPart::slotCollectionChanged( const Akonadi::Collection &collection, const QSet<QByteArray> &attributeNames )
 
162
{
 
163
  if( !attributeNames.contains("ENTITYDISPLAY"))
 
164
     return;
 
165
  slotFolderChanged(collection);
175
166
}
176
167
 
177
168
//-----------------------------------------------------------------------------
181
172
  kDebug();
182
173
  KParts::ReadOnlyPart::guiActivateEvent(e);
183
174
  mainWidget->initializeFilterActions();
184
 
  mainWidget->initializeMessageTagActions();
185
 
  mainWidget->initializeFolderShortcutActions();
186
 
  mainWidget->updateVactionScriptStatus();
 
175
  mainWidget->tagActionManager()->createActions();
 
176
  mainWidget->folderShortcutActionManager()->createActions();
 
177
  mainWidget->updateVacationScriptStatus();
187
178
}
188
179
 
189
180
void KMailPart::exit()