kaddressbookcontactselectiondialog.cpp 3.22 KB
Newer Older
Laurent Montel's avatar
Laurent Montel committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
/*
  Copyright (c) 2009 Tobias Koenig <tokoe@kde.org>
  Copyright (c) 2015-2016 Laurent Montel <montel@kde.org>

  This library is free software; you can redistribute it and/or modify it
  under the terms of the GNU Library General Public License as published by
  the Free Software Foundation; either version 2 of the License, or (at your
  option) any later version.

  This library is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
  License for more details.

  You should have received a copy of the GNU Library General Public License
  along with this library; see the file COPYING.LIB.  If not, write to the
  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
  02110-1301, USA.
*/

#include "kaddressbookcontactselectiondialog.h"
#include "kaddressbookcontactselectionwidget.h"

#include <QVBoxLayout>
#include <KLocalizedString>
#include <QDialogButtonBox>
#include <QPushButton>
using namespace KAddressBookImportExport;

KAddressBookContactSelectionDialog::KAddressBookContactSelectionDialog(QItemSelectionModel *selectionModel, bool allowToSelectTypeToExport,
        QWidget *parent)
Laurent Montel's avatar
Laurent Montel committed
32
    : QDialog(parent),
Laurent Montel's avatar
Laurent Montel committed
33
      mVCardExport(nullptr)
Laurent Montel's avatar
Laurent Montel committed
34 35 36 37 38 39 40 41
{

    setWindowTitle(i18n("Select Contacts"));
    QVBoxLayout *mainLayout = new QVBoxLayout(this);

    mSelectionWidget = new KAddressBookContactSelectionWidget(selectionModel, this);
    if (allowToSelectTypeToExport) {
        mainLayout->addWidget(mSelectionWidget);
Laurent Montel's avatar
Laurent Montel committed
42
        mVCardExport = new KAddressBookExportSelectionWidget(this);
Laurent Montel's avatar
Laurent Montel committed
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
        mainLayout->addWidget(mVCardExport);
    } else {
        mainLayout->addWidget(mSelectionWidget);
    }

    QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
    QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok);
    okButton->setDefault(true);
    okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
    connect(buttonBox, &QDialogButtonBox::accepted, this, &KAddressBookContactSelectionDialog::accept);
    connect(buttonBox, &QDialogButtonBox::rejected, this, &KAddressBookContactSelectionDialog::reject);
    mainLayout->addWidget(buttonBox);
}

void KAddressBookContactSelectionDialog::setMessageText(const QString &message)
{
    mSelectionWidget->setMessageText(message);
}

void KAddressBookContactSelectionDialog::setDefaultAddressBook(const Akonadi::Collection &addressBook)
{
    mSelectionWidget->setDefaultAddressBook(addressBook);
}

Akonadi::Item::List KAddressBookContactSelectionDialog::selectedItems() const
{
    return mSelectionWidget->selectedItems();
}

KAddressBookImportExport::KAddressBookImportExportContactList KAddressBookContactSelectionDialog::selectedContacts() const
{
    return mSelectionWidget->selectedContacts();
}
Laurent Montel's avatar
Laurent Montel committed
76 77

KAddressBookExportSelectionWidget::ExportFields KAddressBookContactSelectionDialog::exportType() const
Laurent Montel's avatar
Laurent Montel committed
78 79 80 81
{
    if (mVCardExport) {
        return mVCardExport->exportType();
    } else {
Laurent Montel's avatar
Laurent Montel committed
82
        return KAddressBookExportSelectionWidget::None;
Laurent Montel's avatar
Laurent Montel committed
83 84 85 86 87 88 89 90
    }
}

void KAddressBookContactSelectionDialog::setAddGroupContact(bool addGroupContact)
{
    mSelectionWidget->setAddGroupContact(addGroupContact);
}