source: SMSSender/common/domain/sgroup.h @ 315:e6c8bb244ecd

separation-frontend-backend
Last change on this file since 315:e6c8bb244ecd was 315:e6c8bb244ecd, checked in by Sämy Zehnder <saemy.zehnder@…>, 6 years ago
  • Separates the frontend from the backend code.
  • At this point the schoolnet gateway is converted only.
  • Removes bc & da prefixes from the filenames.
File size: 2.0 KB
Line 
1/*
2 smssender - A frontend for fast and easy SMS sending over different gateways.
3 Copyright (C) 2007-2012, gorrión. See http://smssender.gorrion.ch
4
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18#ifndef SGROUP_H_
19#define SGROUP_H_
20
21#include <QSet>
22#include <QString>
23
24#ifdef FRONTEND_GUI
25#include <QtGui/QImage>
26#endif
27
28#include "common/global.h"
29
30class SContact;
31
32class COMMON_EXPORT SGroup : public QObject {
33    Q_OBJECT
34
35public:
36    SGroup();
37    ~SGroup();
38
39public:
40    int id() const;
41    QString name() const;
42    QSet<const SContact *> contacts() const;
43
44    void setId(int id);
45    void setName(const QString& name);
46    void setContacts(const QSet<const SContact *> &contacts);
47
48#ifdef FRONTEND_GUI
49    QImage image() const;
50    void setImage(const QImage& image);
51#endif
52
53    // Does NOT take ownership.
54    void addContact(const SContact& contact);
55    void removeContact(const SContact& contact);
56
57signals:
58    void idChanged(SGroup *group, int oldId);
59    void dataChanged(SGroup *group);
60    void contactAdded(SGroup *group, const SContact& contact);
61    void contactRemoved(SGroup *group, const SContact& contact);
62
63private:
64    void addContactToList(const SContact *contact);
65    void removeContactFromList(const SContact *contact);
66
67    int m_id;
68    QString m_name;
69    QSet<const SContact*> m_contactList;
70
71#ifdef FRONTEND_GUI
72    QImage m_image;
73#endif
74
75    Q_DISABLE_COPY(SGroup)
76};
77
78#endif /* SGROUP_H_ */
Note: See TracBrowser for help on using the repository browser.