1 | /* |
2 | Copyright (c) 2006 - 2007 Volker Krause <vkrause@kde.org> |
3 | |
4 | This library is free software; you can redistribute it and/or modify it |
5 | under the terms of the GNU Library General Public License as published by |
6 | the Free Software Foundation; either version 2 of the License, or (at your |
7 | option) any later version. |
8 | |
9 | This library is distributed in the hope that it will be useful, but WITHOUT |
10 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
11 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public |
12 | License for more details. |
13 | |
14 | You should have received a copy of the GNU Library General Public License |
15 | along with this library; see the file COPYING.LIB. If not, write to the |
16 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
17 | 02110-1301, USA. |
18 | */ |
19 | |
20 | #ifndef MAILTRANSPORT_TRANSPORTCOMBOBOX_H |
21 | #define MAILTRANSPORT_TRANSPORTCOMBOBOX_H |
22 | |
23 | #include <mailtransport/mailtransport_export.h> |
24 | #include <mailtransport/transportbase.h> |
25 | |
26 | #include <KDE/KComboBox> |
27 | |
28 | class TransportComboBoxPrivate; |
29 | |
30 | namespace MailTransport { |
31 | |
32 | /** |
33 | A combo-box for selecting a mail transport. |
34 | It is updated automatically when transports are added, changed, or removed. |
35 | */ |
36 | class MAILTRANSPORT_EXPORT TransportComboBox : public KComboBox |
37 | { |
38 | Q_OBJECT |
39 | |
40 | public: |
41 | /** |
42 | Creates a new mail transport selection combo box. |
43 | @param parent The paren widget. |
44 | */ |
45 | TransportComboBox( QWidget *parent = 0 ); |
46 | |
47 | ~TransportComboBox(); |
48 | |
49 | /** |
50 | Returns identifier of the currently selected mail transport. |
51 | */ |
52 | int currentTransportId() const; |
53 | |
54 | /** |
55 | Selects the given transport. |
56 | @param transportId The transport identifier. |
57 | */ |
58 | void setCurrentTransport( int transportId ); |
59 | |
60 | /** |
61 | Returns the type of the selected transport. |
62 | */ |
63 | TransportBase::EnumType::type transportType() const; |
64 | |
65 | protected: |
66 | void setTransportList(const QList<int> &transportList); |
67 | |
68 | public Q_SLOTS: |
69 | /** |
70 | * @since 4.11 |
71 | * Because of binary compatibility constraints, fillComboBox() |
72 | * is private. Therefore it must dynamically detect and call this slot. |
73 | */ |
74 | void updateComboboxList(); |
75 | |
76 | private Q_SLOTS: |
77 | void fillComboBox(); |
78 | |
79 | private: |
80 | TransportComboBoxPrivate *const d; |
81 | }; |
82 | |
83 | } // namespace MailTransport |
84 | |
85 | #endif // MAILTRANSPORT_TRANSPORTCOMBOBOX_H |
86 | |