10 #include "webwidgetlister.h"
11 #include "webwidget.h"
13 #include <KContacts/Addressee>
14 using namespace ContactEditor;
16 WebWidgetLister::WebWidgetLister(
QWidget *parent)
17 : KWidgetLister(1, 8, parent)
19 setNumberOfShownWidgetsTo(widgetsMinimum());
20 updateAddRemoveButton();
23 WebWidgetLister::~WebWidgetLister() =
default;
27 KContacts::ResourceLocatorUrl::List resourceLocatorList = contact.extraUrlList();
28 if (resourceLocatorList.isEmpty()) {
29 setNumberOfShownWidgetsTo(1);
31 setNumberOfShownWidgetsTo(resourceLocatorList.count());
35 for (
int i = 0; wIt != wEnd; ++wIt, ++i) {
36 auto w = qobject_cast<WebWidget *>(*wIt);
37 w->loadWebSite(resourceLocatorList.at(i));
45 KContacts::ResourceLocatorUrl::List resourceLocatorList;
46 for (
QWidget *widget : widgetList) {
47 auto w = qobject_cast<WebWidget *>(widget);
49 if (newUrl.isValid()) {
50 resourceLocatorList << newUrl;
53 contact.setExtraUrlList(resourceLocatorList);
56 void WebWidgetLister::setReadOnly(
bool readOnly)
59 for (
QWidget *widget : widgetList) {
60 auto w = qobject_cast<WebWidget *>(widget);
61 w->setReadOnly(readOnly);
67 auto w =
new WebWidget(parent);
72 void WebWidgetLister::reconnectWidget(WebWidget *w)
75 connect(w, &WebWidget::removeWidget,
this, &WebWidgetLister::slotRemoveWidget,
Qt::UniqueConnection);
76 connect(w, &WebWidget::preferredChanged,
this, &WebWidgetLister::slotPreferredChanged,
Qt::UniqueConnection);
79 void WebWidgetLister::slotAddWidget(WebWidget *w)
81 addWidgetAfterThisWidget(w);
82 updateAddRemoveButton();
85 void WebWidgetLister::slotRemoveWidget(WebWidget *w)
87 if (widgets().count() == 1) {
91 updateAddRemoveButton();
95 void WebWidgetLister::updateAddRemoveButton()
98 const int numberOfWidget(widgetList.
count());
99 bool addButtonEnabled =
false;
100 if (numberOfWidget <= widgetsMinimum()) {
101 addButtonEnabled =
true;
102 }
else if (numberOfWidget >= widgetsMaximum()) {
103 addButtonEnabled =
false;
105 addButtonEnabled =
true;
109 for (; wIt != wEnd; ++wIt) {
110 auto w = qobject_cast<WebWidget *>(*wIt);
111 w->updateAddRemoveButton(addButtonEnabled);
115 void WebWidgetLister::slotPreferredChanged(WebWidget *w)
118 for (
QWidget *widget : widgetList) {
120 (
static_cast<WebWidget *
>(widget))->setPreferred(
false);