10 #include "messagingwidgetlister.h"
11 #include "messagingwidget.h"
13 #include <KContacts/Addressee>
16 MessagingWidgetLister::MessagingWidgetLister(
QWidget *parent)
17 : KWidgetLister(1, 8, parent)
19 setNumberOfShownWidgetsTo(widgetsMinimum());
20 updateAddRemoveButton();
23 MessagingWidgetLister::~MessagingWidgetLister() =
default;
27 const auto imaddresses = contact.imppList();
28 if (imaddresses.isEmpty()) {
29 setNumberOfShownWidgetsTo(1);
31 setNumberOfShownWidgetsTo(imaddresses.count());
35 for (
int i = 0; wIt != wEnd; ++wIt, ++i) {
36 auto w = qobject_cast<MessagingWidget *>(*wIt);
37 w->setIMAddress(imaddresses.at(i));
44 KContacts::Impp::List imaddresses;
46 for (
QWidget *widget : widgetList) {
47 auto w = qobject_cast<MessagingWidget *>(widget);
48 imaddresses << w->imAddress();
50 contact.setImppList(imaddresses);
53 void MessagingWidgetLister::setReadOnly(
bool readOnly)
56 for (
QWidget *widget : widgetList) {
57 auto w = qobject_cast<MessagingWidget *>(widget);
58 w->setReadOnly(readOnly);
64 auto w =
new MessagingWidget(parent);
69 void MessagingWidgetLister::reconnectWidget(MessagingWidget *w)
71 connect(w, &MessagingWidget::addWidget,
this, &MessagingWidgetLister::slotAddWidget,
Qt::UniqueConnection);
72 connect(w, &MessagingWidget::removeWidget,
this, &MessagingWidgetLister::slotRemoveWidget,
Qt::UniqueConnection);
73 connect(w, &MessagingWidget::preferredChanged,
this, &MessagingWidgetLister::slotPreferredChanged,
Qt::UniqueConnection);
76 void MessagingWidgetLister::slotPreferredChanged(MessagingWidget *w)
79 for (
QWidget *widget : widgetList) {
81 (
static_cast<MessagingWidget *
>(widget))->setPreferred(
false);
86 void MessagingWidgetLister::slotAddWidget(MessagingWidget *w)
88 addWidgetAfterThisWidget(w);
89 updateAddRemoveButton();
92 void MessagingWidgetLister::slotRemoveWidget(MessagingWidget *w)
94 if (widgets().count() == 1) {
98 updateAddRemoveButton();
102 void MessagingWidgetLister::updateAddRemoveButton()
105 const int numberOfWidget(widgetList.
count());
106 bool addButtonEnabled =
false;
107 if (numberOfWidget <= widgetsMinimum()) {
108 addButtonEnabled =
true;
109 }
else if (numberOfWidget >= widgetsMaximum()) {
110 addButtonEnabled =
false;
112 addButtonEnabled =
true;
116 for (; wIt != wEnd; ++wIt) {
117 auto w = qobject_cast<MessagingWidget *>(*wIt);
118 w->updateAddRemoveButton(addButtonEnabled);
122 #include "moc_messagingwidgetlister.cpp"