File indexing completed on 2022-12-06 14:29:07

0001 /*
0002  *  Contact List Widget Private class
0003  *  Copyright (C) 2011  Martin Klapetek <martin.klapetek@gmail.com>
0004  *
0005  *  This library is free software; you can redistribute it and/or
0006  *  modify it under the terms of the GNU Lesser General Public
0007  *  License as published by the Free Software Foundation; either
0008  *  version 2.1 of the License, or (at your option) any later version.
0009  *
0010  *  This library is distributed in the hope that it will be useful,
0011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0013  *  Lesser General Public License for more details.
0014  *
0015  *  You should have received a copy of the GNU Lesser General Public
0016  *  License along with this library; if not, write to the Free Software
0017  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
0018  */
0019 
0020 #ifndef CONTACT_LIST_WIDGET_P_H
0021 #define CONTACT_LIST_WIDGET_P_H
0022 
0023 #include <QProxyStyle>
0024 
0025 #include <TelepathyQt/Types>
0026 #include <KTp/Models/contacts-model.h>
0027 
0028 namespace KTp {
0029     class ContactsModel;
0030 }
0031 
0032 class ContactDelegate;
0033 class ContactDelegateCompact;
0034 class QStyle;
0035 
0036 class ContactListWidgetPrivate {
0037 public:
0038     ContactListWidgetPrivate()
0039     : model(0),
0040       delegate(0),
0041       compactDelegate(0),
0042       shouldDrag(false),
0043       showOffline(false) {}
0044 
0045     KTp::ContactsModel           *model;
0046     ContactDelegate              *delegate;
0047     ContactDelegateCompact       *compactDelegate;
0048     QRect                         dropIndicatorRect;
0049     QPoint                        dragStartPosition;
0050     QString                       dragSourceGroup;
0051     bool                          shouldDrag;
0052     bool                          showOffline;
0053     QHash<QString, bool>          groupStates;
0054     Tp::AccountManagerPtr         accountManager;
0055     KTp::ContactsModel::GroupMode groupMode; // Stores current grouping mode (by accounts or by groups)
0056     QPersistentModelIndex         selectedIndex;
0057     QScopedPointer<QStyle>        style;
0058 };
0059 
0060 #endif //CONTACT_LIST_WIDGET_P_H