Branch 'kolab/integration/4.13.0' - 3 commits - accountwizard/servertest.cpp composereditor-ng/CMakeLists.txt messagecomposer/composer messagecomposer/recipient
Christian Mollekopf
mollekopf at kolabsys.com
Mon Jan 12 18:47:25 CET 2015
accountwizard/servertest.cpp | 5 +
composereditor-ng/CMakeLists.txt | 2
messagecomposer/composer/composerlineedit.cpp | 105 +++++++++++++++++++++++--
messagecomposer/composer/composerlineedit.h | 18 ++++
messagecomposer/recipient/recipientline.cpp | 9 ++
messagecomposer/recipient/recipientline.h | 3
messagecomposer/recipient/recipientseditor.cpp | 11 ++
messagecomposer/recipient/recipientseditor.h | 1
8 files changed, 145 insertions(+), 9 deletions(-)
New commits:
commit 69701d73356231650f0dd1db3b754c7b00f69366
Author: Christian Mollekopf <chrigi_1 at fastmail.fm>
Date: Mon Jan 12 18:46:43 2015 +0100
composereditorng depends on kio as well.
For KUrlRequester, KFileDialog, and others.
diff --git a/composereditor-ng/CMakeLists.txt b/composereditor-ng/CMakeLists.txt
index d08bca0..d9f6853 100644
--- a/composereditor-ng/CMakeLists.txt
+++ b/composereditor-ng/CMakeLists.txt
@@ -52,7 +52,7 @@ kde4_add_ui_files(libcomposereditor_ng_SRCS ui/pagecolorbackgroundwidget.ui )
kde4_add_library(composereditorng ${LIBRARY_TYPE} ${libcomposereditor_ng_SRCS})
target_link_libraries(composereditorng
- ${KDE4_KDEWEBKIT_LIBRARY} ${QT_QTWEBKIT_LIBRARY} ${KDEPIMLIBS_KPIMTEXTEDIT_LIBS} ${KDE4_KPRINTUTILS_LIBS}
+ ${KDE4_KDEWEBKIT_LIBRARY} ${QT_QTWEBKIT_LIBRARY} ${KDEPIMLIBS_KPIMTEXTEDIT_LIBS} ${KDE4_KPRINTUTILS_LIBS} ${KDE4_KIO_LIBS}
)
commit dc08482fc43940103ac7c9acf5f05dc69fa5844a
Author: Sandro Knauà <knauss at kolabsys.com>
Date: Sun Jan 11 00:36:09 2015 +0100
MessageComposer: Expand groups
ContactGroups should be possible to expand to different to fields.
KOLAB: #1871
diff --git a/messagecomposer/composer/composerlineedit.cpp b/messagecomposer/composer/composerlineedit.cpp
index c288244..d81be68 100644
--- a/messagecomposer/composer/composerlineedit.cpp
+++ b/messagecomposer/composer/composerlineedit.cpp
@@ -46,16 +46,24 @@
#include <QDropEvent>
#include <kabc/contactgrouptool.h>
#include <Akonadi/Contact/ContactGroupExpandJob>
+#include <Akonadi/Contact/ContactGroupSearchJob>
#include <QtCore/QBuffer>
using namespace MessageComposer;
ComposerLineEdit::ComposerLineEdit(bool useCompletion, QWidget *parent)
: KPIM::AddresseeLineEdit(parent, useCompletion),
- m_recentAddressConfig( MessageComposerSettings::self()->config() )
+ m_recentAddressConfig( MessageComposerSettings::self()->config() ),
+ mAutoGroupExpand(false),
+ mExpandIntern(true)
{
allowSemicolonAsSeparator( MessageComposerSettings::allowSemicolonAsAddressSeparator() );
loadContacts();
+ connect( this, SIGNAL(editingFinished()), SLOT(slotEditingFinished()) );
+ connect( this, SIGNAL(textCompleted()), SLOT(slotEditingFinished()) );
+
+ KConfigGroup group( KGlobal::config(), "AddressLineEdit" );
+ mAutoGroupExpand = group.readEntry( "AutoGroupExpand", false );
}
@@ -157,7 +165,7 @@ void ComposerLineEdit::dropEvent(QDropEvent *event)
QString error;
if( KABC::ContactGroupTool::convertFromXml( &dataStream, group, &error ) ) {
Akonadi::ContactGroupExpandJob* expandJob = new Akonadi::ContactGroupExpandJob( group );
- connect( expandJob, SIGNAL(result(KJob*)), this, SLOT(groupDropExpandResult(KJob*)) );
+ connect( expandJob, SIGNAL(result(KJob*)), this, SLOT(groupExpandResult(KJob*)) );
expandJob->start();
}
}
@@ -183,7 +191,7 @@ void ComposerLineEdit::dropEvent(QDropEvent *event)
}
#endif
-void ComposerLineEdit::groupDropExpandResult( KJob* job )
+void ComposerLineEdit::groupExpandResult( KJob* job )
{
Akonadi::ContactGroupExpandJob *expandJob = qobject_cast<Akonadi::ContactGroupExpandJob*>( job );
@@ -191,12 +199,79 @@ void ComposerLineEdit::groupDropExpandResult( KJob* job )
return;
const KABC::Addressee::List contacts = expandJob->contacts();
- foreach( const KABC::Addressee& addressee, contacts )
- insertEmails( addressee.emails() );
+ foreach( const KABC::Addressee& addressee, contacts ) {
+ if (mExpandIntern || text().isEmpty()) {
+ insertEmails( QStringList() << addressee.fullEmail() );
+ } else {
+ emit addAddress(addressee.fullEmail());
+ }
+ }
job->deleteLater();
}
+void ComposerLineEdit::slotEditingFinished()
+{
+ foreach(KJob *job, mMightBeGroupJobs) {
+ disconnect(job);
+ job->deleteLater();
+ }
+
+ mMightBeGroupJobs.clear();
+ mGroups.clear();
+
+ if (!text().isEmpty()) {
+ QStringList addresses = KPIMUtils::splitAddressList(text());
+ foreach(QString address, addresses) {
+ Akonadi::ContactGroupSearchJob *job = new Akonadi::ContactGroupSearchJob();
+ job->setQuery( Akonadi::ContactGroupSearchJob::Name, address);
+ connect( job, SIGNAL(result(KJob*)), this, SLOT(slotGroupSearchResult(KJob*)) );
+ mMightBeGroupJobs.append(job);
+ }
+ }
+}
+
+void ComposerLineEdit::slotGroupSearchResult(KJob *job)
+{
+ Akonadi::ContactGroupSearchJob *searchJob = qobject_cast<Akonadi::ContactGroupSearchJob*>( job );
+
+ Q_ASSERT(mMightBeGroupJobs.contains(searchJob));
+ mMightBeGroupJobs.removeOne(searchJob);
+
+ const KABC::ContactGroup::List contactGroups = searchJob->contactGroups();
+ if ( contactGroups.isEmpty() ) {
+ return; // Nothing todo, probably a normal email address was entered
+ }
+
+ mGroups.append(contactGroups);
+ searchJob->deleteLater();
+
+ if (mAutoGroupExpand) {
+ expandGroups();
+ }
+}
+
+void ComposerLineEdit::expandGroups()
+{
+ QStringList addresses = KPIMUtils::splitAddressList(text());
+
+ foreach(KABC::ContactGroup group, mGroups) {
+ Akonadi::ContactGroupExpandJob* expandJob = new Akonadi::ContactGroupExpandJob( group );
+ connect( expandJob, SIGNAL(result(KJob*)), this, SLOT(groupExpandResult(KJob*)) );
+ addresses.removeAll(group.name());
+ expandJob->start();
+ }
+ setText(addresses.join(QLatin1String(", ")));
+ mGroups.clear();
+}
+
+void ComposerLineEdit::slotToggleExpandGroups()
+{
+ mAutoGroupExpand = !mAutoGroupExpand;
+ KConfigGroup group( KGlobal::config(), "AddressLineEdit" );
+ group.writeEntry( "AutoGroupExpand", mAutoGroupExpand );
+}
+
#ifndef QT_NO_CONTEXTMENU
void ComposerLineEdit::contextMenuEvent( QContextMenuEvent*e )
@@ -206,6 +281,17 @@ void ComposerLineEdit::contextMenuEvent( QContextMenuEvent*e )
popup->addSeparator();
QAction* act = popup->addAction( i18n( "Edit Recent Addresses..." ));
connect(act,SIGNAL(triggered(bool)), SLOT(editRecentAddresses()) );
+
+ popup->addSeparator();
+ act = popup->addAction( i18n( "Automatically expand groups" ));
+ act->setCheckable(true);
+ act->setChecked(mAutoGroupExpand);
+ connect(act,SIGNAL(triggered(bool)), SLOT(slotToggleExpandGroups()) );
+
+ if (mGroups.count() > 0) {
+ act = popup->addAction( i18n( "Expand Groups..." ));
+ connect(act,SIGNAL(triggered(bool)), SLOT(expandGroups()) );
+ }
popup->exec( e->globalPos() );
delete popup;
}
@@ -265,4 +351,13 @@ void ComposerLineEdit::setRecentAddressConfig ( KConfig* config )
m_recentAddressConfig = config;
}
+bool ComposerLineEdit::expandIntern()
+{
+ return mExpandIntern;
+}
+
+void ComposerLineEdit::setExpandIntern(bool expand)
+{
+ mExpandIntern = expand;
+}
diff --git a/messagecomposer/composer/composerlineedit.h b/messagecomposer/composer/composerlineedit.h
index d50e6a3..35c560e 100644
--- a/messagecomposer/composer/composerlineedit.h
+++ b/messagecomposer/composer/composerlineedit.h
@@ -24,6 +24,8 @@
#include "messagecomposer_export.h"
#include <libkdepim/addressline/addresseelineedit.h>
+#include <ldap/ldapclientsearch.h>
+#include <kabc/contactgroup.h>
namespace MessageComposer {
@@ -36,9 +38,13 @@ public:
void setRecentAddressConfig( KConfig* config );
+ void setExpandIntern(bool);
+ bool expandIntern();
+
signals:
void focusUp();
void focusDown();
+ void addAddress(const QString &address);
protected:
@@ -51,9 +57,15 @@ protected:
virtual void contextMenuEvent( QContextMenuEvent*e );
#endif
+public slots:
+ void expandGroups();
+
private slots:
void editRecentAddresses();
- void groupDropExpandResult( KJob* );
+ void groupExpandResult( KJob* );
+ void slotEditingFinished();
+ void slotGroupSearchResult( KJob* );
+ void slotToggleExpandGroups();
private:
#ifndef QT_NO_DRAGANDDROP
@@ -63,6 +75,10 @@ private:
private:
KConfig* m_recentAddressConfig;
+ QList<KJob *> mMightBeGroupJobs;
+ KABC::ContactGroup::List mGroups;
+ bool mAutoGroupExpand;
+ bool mExpandIntern;
};
}
diff --git a/messagecomposer/recipient/recipientline.cpp b/messagecomposer/recipient/recipientline.cpp
index 8428afc..dcf2cf5 100644
--- a/messagecomposer/recipient/recipientline.cpp
+++ b/messagecomposer/recipient/recipientline.cpp
@@ -45,6 +45,7 @@ void RecipientComboBox::keyPressEvent( QKeyEvent *ev )
RecipientLineEdit::RecipientLineEdit ( QWidget* parent ) : ComposerLineEdit ( parent )
{
+ setExpandIntern(false);
}
void RecipientLineEdit::keyPressEvent( QKeyEvent *ev )
@@ -101,6 +102,8 @@ RecipientLineNG::RecipientLineNG( QWidget* parent )
connect( mCombo, SIGNAL(activated(int)),
this, SLOT(slotTypeModified()) );
+
+ connect(mEdit, SIGNAL(addAddress(QString)), SLOT(slotAddRecipient(QString)));
}
void RecipientLineNG::slotEditingFinished()
@@ -110,6 +113,12 @@ void RecipientLineNG::slotEditingFinished()
}
}
+void RecipientLineNG::slotAddRecipient(const QString &email)
+{
+ emit addRecipient(this, email);
+ slotReturnPressed();
+}
+
void RecipientLineNG::slotTypeModified()
{
mModified = true;
diff --git a/messagecomposer/recipient/recipientline.h b/messagecomposer/recipient/recipientline.h
index df3c6b7..c3a03cb 100644
--- a/messagecomposer/recipient/recipientline.h
+++ b/messagecomposer/recipient/recipientline.h
@@ -101,6 +101,7 @@ public:
signals:
void typeModified( RecipientLineNG* );
+ void addRecipient( RecipientLineNG*, const QString &);
void countChanged();
protected slots:
@@ -117,6 +118,8 @@ private:
bool mModified;
QSharedPointer<Recipient> mData;
+private slots:
+ void slotAddRecipient(const QString &);
};
}
diff --git a/messagecomposer/recipient/recipientseditor.cpp b/messagecomposer/recipient/recipientseditor.cpp
index ef38044..71d34a9 100644
--- a/messagecomposer/recipient/recipientseditor.cpp
+++ b/messagecomposer/recipient/recipientseditor.cpp
@@ -49,9 +49,11 @@ RecipientLineFactory::RecipientLineFactory( QObject* parent )
}
-KPIM::MultiplyingLine* RecipientLineFactory::newLine( QWidget *parent )
+KPIM::MultiplyingLine* RecipientLineFactory::newLine( QWidget *widget )
{
- return new RecipientLineNG( parent );
+ RecipientLineNG *line = new RecipientLineNG( widget );
+ connect(line, SIGNAL(addRecipient(RecipientLineNG*,QString)), qobject_cast<RecipientsEditor * >(parent()), SLOT(addRecipient(RecipientLineNG*,QString)));
+ return line;
}
int RecipientLineFactory::maximumRecipients()
@@ -94,6 +96,11 @@ bool RecipientsEditor::addRecipient( const QString& recipient, Recipient::Type t
return addData( Recipient::Ptr( new Recipient ( recipient, type ) ) );
}
+void RecipientsEditor::addRecipient(RecipientLineNG *line, const QString &recipient)
+{
+ addRecipient(recipient, line->recipientType());
+}
+
void RecipientsEditor::setRecipientString( const QList< KMime::Types::Mailbox >& mailboxes, Recipient::Type type )
{
int count = 1;
diff --git a/messagecomposer/recipient/recipientseditor.h b/messagecomposer/recipient/recipientseditor.h
index 9a9605e..e2491a7 100644
--- a/messagecomposer/recipient/recipientseditor.h
+++ b/messagecomposer/recipient/recipientseditor.h
@@ -92,6 +92,7 @@ protected slots:
void slotLineAdded( KPIM::MultiplyingLine* );
void slotLineDeleted( int pos );
void slotCalculateTotal();
+ void addRecipient( RecipientLineNG*, const QString &);
protected:
virtual RecipientLineNG* activeLine() const;
commit 3d5405fd47d0c56bf5394892b1766b498efa838f
Author: Sandro Knauà <knauss at kolabsys.com>
Date: Sat Jan 10 14:41:03 2015 +0100
Add submission protocoll to servertest
The default submission protocol for kolab is submission (587).
KOLAB: 1862
diff --git a/accountwizard/servertest.cpp b/accountwizard/servertest.cpp
index 89fee3b..04ba96a 100644
--- a/accountwizard/servertest.cpp
+++ b/accountwizard/servertest.cpp
@@ -43,6 +43,11 @@ void ServerTest::test( const QString server, const QString protocol )
kDebug() << server << protocol;
m_serverTest->setServer( server );
m_serverTest->setProtocol( protocol );
+ if (protocol == QLatin1String("submission")) {
+ m_serverTest->setProtocol( QLatin1String("smtp") );
+ m_serverTest->setPort(MailTransport::Transport::EnumEncryption::None, 587);
+ m_serverTest->setPort(MailTransport::Transport::EnumEncryption::SSL, 0); //No ssl port for submission
+ }
m_serverTest->start();
}
More information about the commits
mailing list