~ubuntu-branches/ubuntu/vivid/sflphone/vivid

« back to all changes in this revision

Viewing changes to kde/src/widgets/contactitemwidget.h

  • Committer: Package Import Robot
  • Author(s): Mark Purcell
  • Date: 2013-06-30 11:40:56 UTC
  • mfrom: (4.1.18 saucy-proposed)
  • Revision ID: package-import@ubuntu.com-20130630114056-0np50jkyqo6vnmii
Tags: 1.2.3-2
* changeset_r92d62cfc54732bbbcfff2b1d36c096b120b981a5.diff 
  - fixes automatic endian detection 
* Update Vcs: fixes vcs-field-not-canonical

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************
 
2
 *   Copyright (C) 2009-2013 by Savoir-Faire Linux                         *
 
3
 *   Author : Mathieu Leduc-Hamel mathieu.leduc-hamel@savoirfairelinux.com *
 
4
 *            Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com>*
 
5
 *                                                                         *
 
6
 *   This program is free software; you can redistribute it and/or modify  *
 
7
 *   it under the terms of the GNU General Public License as published by  *
 
8
 *   the Free Software Foundation; either version 3 of the License, or     *
 
9
 *   (at your option) any later version.                                   *
 
10
 *                                                                         *
 
11
 *   This program is distributed in the hope that it will be useful,       *
 
12
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 
13
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 
14
 *   GNU General Public License for more details.                          *
 
15
 *                                                                         *
 
16
 *   You should have received a copy of the GNU General Public License     *
 
17
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
 
18
 **************************************************************************/
 
19
 
 
20
#ifndef CONTACTITEMWIDGET_H
 
21
#define CONTACTITEMWIDGET_H
 
22
 
 
23
#include <QtGui/QWidget>
 
24
#include "lib/contact.h"
 
25
 
 
26
//Qt
 
27
class QLabel;
 
28
class QTreeWidgetItem;
 
29
class QMenu;
 
30
class QMimeData;
 
31
 
 
32
//KDE
 
33
class KAction;
 
34
 
 
35
namespace KABC {
 
36
   class Addressee;
 
37
}
 
38
 
 
39
//SFLPhone
 
40
class Contact;
 
41
class TranslucentButtons;
 
42
 
 
43
///ContactItemWidget: Item for the contact tree
 
44
class ContactItemWidget : public QWidget
 
45
{
 
46
   Q_OBJECT
 
47
 public:
 
48
    //Constructor
 
49
    explicit ContactItemWidget(QWidget* parent = nullptr);
 
50
    ~ContactItemWidget();
 
51
 
 
52
    //Getters
 
53
    KABC::Addressee*  contact()         const;
 
54
    const QString&    getContactName()  const;
 
55
    PhoneNumbers      getCallNumbers()  const;
 
56
    const QString&    getOrganization() const;
 
57
    const QString&    getEmail()        const;
 
58
    QPixmap*          getPicture()      const;
 
59
    QTreeWidgetItem*  getItem()         const;
 
60
    Contact*          getContact()      const;
 
61
    virtual QSize     sizeHint ()       const;
 
62
 
 
63
    //Setters
 
64
    void setContact ( Contact*         contact );
 
65
    void setItem    ( QTreeWidgetItem* item    );
 
66
 
 
67
    //Const
 
68
    static const char * callStateIcons[12];
 
69
    
 
70
protected:
 
71
   virtual void dragEnterEvent        ( QDragEnterEvent *e );
 
72
   virtual void dragMoveEvent         ( QDragMoveEvent  *e );
 
73
   virtual void dragLeaveEvent        ( QDragLeaveEvent *e );
 
74
   virtual void dropEvent             ( QDropEvent      *e );
 
75
   virtual void mouseDoubleClickEvent ( QMouseEvent     *e );
 
76
 
 
77
 private:
 
78
    //Attributes
 
79
    Contact* m_pContactKA    ;
 
80
    QLabel*  m_pIconL        ;
 
81
    QLabel*  m_pContactNameL ;
 
82
    QLabel*  m_pCallNumberL  ;
 
83
    QLabel*  m_pOrganizationL;
 
84
    QLabel*  m_pEmailL       ;
 
85
    QTreeWidgetItem* m_pItem ;
 
86
    QSize    m_Size          ;
 
87
 
 
88
    //Actions
 
89
    KAction* m_pCallAgain   ;
 
90
    KAction* m_pEditContact ;
 
91
    KAction* m_pCopy        ;
 
92
    KAction* m_pEmail       ;
 
93
    KAction* m_pAddPhone    ;
 
94
    KAction* m_pBookmark    ;
 
95
    QMenu*   m_pMenu        ;
 
96
    
 
97
    TranslucentButtons* m_pBtnTrans;
 
98
 
 
99
    //Helper
 
100
    QString showNumberSelector(bool& ok);
 
101
 
 
102
public Q_SLOTS:
 
103
   void updated();
 
104
 
 
105
private Q_SLOTS:
 
106
   void showContext(const QPoint& pos);
 
107
   void sendEmail   ();
 
108
   void callAgain   ();
 
109
   void copy        ();
 
110
   void editContact ();
 
111
   void addPhone    ();
 
112
   void bookmark    ();
 
113
   void transferEvent( QMimeData* data   );
 
114
 };
 
115
 
 
116
#endif // CONTACTITEMWIDGET_H