File indexing completed on 2024-05-19 05:14:37

0001 /*
0002   This file is part of KAddressBook.
0003 
0004   SPDX-FileCopyrightText: 2009-2024 Laurent Montel <montel@kde.org>
0005 
0006   SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #include "kaddressbookpart.h"
0010 #include "mainwidget.h"
0011 
0012 #include "kaddressbook_debug.h"
0013 #include <KActionCollection>
0014 #include <KLocalizedString>
0015 #include <KPluginFactory>
0016 #include <QAction>
0017 #include <QIcon>
0018 
0019 #include <QVBoxLayout>
0020 
0021 K_PLUGIN_FACTORY(KAddressBookFactory, registerPlugin<KAddressBookPart>();)
0022 
0023 KAddressBookPart::KAddressBookPart(QWidget *parentWidget, QObject *parent, const KPluginMetaData &data, const QVariantList &)
0024     : KParts::Part(parent, data)
0025 {
0026     setComponentName(QStringLiteral("kaddressbook"), i18n("KAddressBook"));
0027 
0028     // create a canvas to insert our widget
0029     auto canvas = new QWidget(parentWidget);
0030     canvas->setFocusPolicy(Qt::ClickFocus);
0031     setWidget(canvas);
0032     auto topLayout = new QVBoxLayout(canvas);
0033 
0034     mMainWidget = new MainWidget(this, canvas);
0035     initAction();
0036 
0037     topLayout->addWidget(mMainWidget);
0038     topLayout->setContentsMargins({});
0039     setXMLFile(QStringLiteral("kaddressbookui_part.rc"));
0040 }
0041 
0042 void KAddressBookPart::updateQuickSearchText()
0043 {
0044     mMainWidget->updateQuickSearchText();
0045 }
0046 
0047 void KAddressBookPart::initAction()
0048 {
0049     auto action = new QAction(QIcon::fromTheme(QStringLiteral("configure")), i18n("&Configure KAddressBook..."), this);
0050     actionCollection()->addAction(QStringLiteral("kaddressbook_configure"), action);
0051     connect(action, &QAction::triggered, mMainWidget, &MainWidget::configure);
0052 }
0053 
0054 void KAddressBookPart::newContact()
0055 {
0056     mMainWidget->newContact();
0057 }
0058 
0059 void KAddressBookPart::newGroup()
0060 {
0061     mMainWidget->newGroup();
0062 }
0063 
0064 KAddressBookPart::~KAddressBookPart() = default;
0065 
0066 void KAddressBookPart::guiActivateEvent(KParts::GUIActivateEvent *e)
0067 {
0068     KParts::Part::guiActivateEvent(e);
0069     mMainWidget->initializePluginActions();
0070 }
0071 
0072 #include "kaddressbookpart.moc"
0073 
0074 #include "moc_kaddressbookpart.cpp"