mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-24 10:52:52 +00:00
162 lines
4.5 KiB
C++
162 lines
4.5 KiB
C++
/*
|
|
This file is part of KAddressBook.
|
|
|
|
Copyright (c) 2007 Tobias Koenig <tokoe@kde.org>
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program 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 General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License along
|
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#ifndef MAINWIDGET_H
|
|
#define MAINWIDGET_H
|
|
|
|
#include "kaddressbook_export.h"
|
|
|
|
#include <QWidget>
|
|
|
|
namespace GrantleeTheme {
|
|
class GrantleeThemeManager;
|
|
}
|
|
class KAction;
|
|
namespace Akonadi {
|
|
class Collection;
|
|
class ContactGroupViewer;
|
|
class ContactViewer;
|
|
class ContactsFilterProxyModel;
|
|
class EntityMimeTypeFilterModel;
|
|
class EntityTreeView;
|
|
class Item;
|
|
class ItemView;
|
|
class StandardContactActionManager;
|
|
class EntityTreeModel;
|
|
}
|
|
|
|
namespace KAddressBookGrantlee {
|
|
class GrantleeContactFormatter;
|
|
class GrantleeContactGroupFormatter;
|
|
}
|
|
|
|
class ContactSwitcher;
|
|
class KActionCollection;
|
|
class KXMLGUIClient;
|
|
class ModelColumnManager;
|
|
#include <QAbstractItemModel>
|
|
#include <QItemSelectionModel>
|
|
#include <QModelIndex>
|
|
#include <QSplitter>
|
|
#include <QStackedWidget>
|
|
class QuickSearchWidget;
|
|
class XXPortManager;
|
|
#include <QActionGroup>
|
|
class CategorySelectWidget;
|
|
class CategoryFilterProxyModel;
|
|
|
|
class KADDRESSBOOK_EXPORT MainWidget : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit MainWidget( KXMLGUIClient *guiClient, QWidget *parent = 0 );
|
|
~MainWidget();
|
|
|
|
XXPortManager *importManager() const;
|
|
void updateQuickSearchText();
|
|
|
|
public Q_SLOTS:
|
|
void newContact();
|
|
void newGroup();
|
|
void print();
|
|
void printPreview();
|
|
void configure();
|
|
void mergeContacts();
|
|
void slotSearchDuplicateContacts();
|
|
|
|
bool handleCommandLine();
|
|
|
|
private Q_SLOTS:
|
|
void delayedInit();
|
|
|
|
void itemSelected( const Akonadi::Item &item );
|
|
void itemSelectionChanged( const QModelIndex &, const QModelIndex & );
|
|
void selectFirstItem();
|
|
|
|
void setViewMode( QAction *action );
|
|
void setQRCodeShow( bool on );
|
|
|
|
void restoreState();
|
|
void saveState();
|
|
|
|
void slotGrantleeThemeSelected();
|
|
void slotGrantleeThemesUpdated();
|
|
void slotCheckNewCalendar(const QModelIndex &parent, int begin, int end);
|
|
|
|
void slotSendMail();
|
|
|
|
void slotSendMails(const QStringList &emails);
|
|
|
|
void slotDebugBaloo();
|
|
private:
|
|
void initGrantleeThemeName();
|
|
void setupGui();
|
|
void setupActions( KActionCollection * );
|
|
bool showQRCodes();
|
|
void setViewMode( int mode );
|
|
void saveSplitterStates() const;
|
|
void restoreSplitterStates();
|
|
|
|
QAbstractItemModel *allContactsModel();
|
|
|
|
/**
|
|
* Returns the address book collection that is currently
|
|
* selected by the user or an invalid collection if no
|
|
* address book is selected.
|
|
*/
|
|
Akonadi::Collection currentAddressBook() const;
|
|
|
|
Akonadi::EntityMimeTypeFilterModel *mCollectionTree;
|
|
Akonadi::EntityMimeTypeFilterModel *mItemTree;
|
|
Akonadi::EntityMimeTypeFilterModel *mAllContactsModel;
|
|
Akonadi::ContactsFilterProxyModel *mContactsFilterModel;
|
|
CategoryFilterProxyModel *mCategoryFilterModel;
|
|
|
|
QuickSearchWidget *mQuickSearchWidget;
|
|
Akonadi::EntityTreeView *mCollectionView;
|
|
Akonadi::EntityTreeView *mItemView;
|
|
CategorySelectWidget *mCategorySelectWidget;
|
|
|
|
QWidget *mDetailsPane;
|
|
QStackedWidget *mDetailsViewStack;
|
|
ContactSwitcher *mContactSwitcher;
|
|
|
|
QSplitter *mMainWidgetSplitter1;
|
|
QSplitter *mMainWidgetSplitter2;
|
|
Akonadi::ContactViewer *mContactDetails;
|
|
Akonadi::ContactGroupViewer *mContactGroupDetails;
|
|
QWidget *mEmptyDetails;
|
|
Akonadi::StandardContactActionManager *mActionManager;
|
|
QItemSelectionModel *mCollectionSelectionModel;
|
|
|
|
QActionGroup *mViewModeGroup;
|
|
|
|
XXPortManager *mXXPortManager;
|
|
ModelColumnManager *mModelColumnManager;
|
|
KXMLGUIClient *mXmlGuiClient;
|
|
KAddressBookGrantlee::GrantleeContactFormatter *mFormatter;
|
|
KAddressBookGrantlee::GrantleeContactGroupFormatter *mGroupFormatter;
|
|
GrantleeTheme::GrantleeThemeManager *mGrantleeThemeManager;
|
|
Akonadi::EntityTreeModel *entityTreeModel() const;
|
|
KAction *mQuickSearchAction;
|
|
};
|
|
|
|
#endif
|