Changeset View
Changeset View
Standalone View
Standalone View
src/contact-editor/editor/generalinfoeditor/web/webwidget.cpp
Show First 20 Lines • Show All 90 Lines • ▼ Show 20 Line(s) | |||||
91 | void WebWidget::setPreferred(bool b) | 91 | void WebWidget::setPreferred(bool b) | ||
92 | { | 92 | { | ||
93 | mWebSiteEdit->setPreferred(b); | 93 | mWebSiteEdit->setPreferred(b); | ||
94 | } | 94 | } | ||
95 | 95 | | |||
96 | KContacts::ResourceLocatorUrl WebWidget::url() | 96 | KContacts::ResourceLocatorUrl WebWidget::url() | ||
97 | { | 97 | { | ||
98 | mUrl.setUrl(QUrl(mWebSiteEdit->text())); | 98 | mUrl.setUrl(QUrl(mWebSiteEdit->text())); | ||
99 | QMap<QString, QStringList> parameters = mUrl.parameters(); | 99 | mUrl.setPreferred(mWebSiteEdit->preferred()); | ||
100 | QStringList value = parameters.value(QStringLiteral("type")); | 100 | mUrl.setType(KContacts::ResourceLocatorUrl::Type(mWebType->currentData().toInt())); | ||
101 | | ||||
102 | const QString newType = mWebType->currentData().toString(); | | |||
103 | if (!newType.isEmpty()) { | | |||
104 | if (mOldType != newType) { | | |||
105 | if (!value.contains(newType)) { | | |||
106 | value.append(newType); | | |||
107 | } | | |||
108 | if (!mOldType.isEmpty()) { | | |||
109 | value.removeAll(mOldType); | | |||
110 | } | | |||
111 | } | | |||
112 | } | | |||
113 | if (mWebSiteEdit->preferred()) { | | |||
114 | if (!value.contains(QLatin1String("PREF"))) { | | |||
115 | value.append(QStringLiteral("PREF")); | | |||
116 | } | | |||
117 | } else { | | |||
118 | value.removeAll(QStringLiteral("PREF")); | | |||
119 | } | | |||
120 | if (!value.isEmpty()) { | | |||
121 | parameters.insert(QStringLiteral("type"), value); | | |||
122 | } | | |||
123 | mUrl.setParameters(parameters); | | |||
124 | return mUrl; | 101 | return mUrl; | ||
125 | } | 102 | } | ||
126 | 103 | | |||
127 | void WebWidget::loadWebSite(const KContacts::ResourceLocatorUrl &url) | 104 | void WebWidget::loadWebSite(const KContacts::ResourceLocatorUrl &url) | ||
128 | { | 105 | { | ||
129 | mUrl = url; | 106 | mUrl = url; | ||
130 | const QMap<QString, QStringList> parameters = mUrl.parameters(); | 107 | setPreferred(url.isPreferred()); | ||
131 | const QStringList value = parameters.value(QStringLiteral("type")); | 108 | mWebType->setCurrentIndex(mWebType->findData((int)url.type())); | ||
132 | if (value.contains(QLatin1String("PREF"))) { | | |||
133 | setPreferred(true); | | |||
134 | } | | |||
135 | const QStringList lst = mWebType->selectTypeList(); | | |||
136 | for (const QString &type : lst) { | | |||
137 | if (value.contains(type)) { | | |||
138 | mOldType = type; | | |||
139 | mWebType->setCurrentIndex(mWebType->findData(type)); | | |||
140 | break; | | |||
141 | } | | |||
142 | } | | |||
143 | mWebSiteEdit->setText(mUrl.url().toDisplayString()); | 109 | mWebSiteEdit->setText(mUrl.url().toDisplayString()); | ||
144 | } | 110 | } | ||
145 | 111 | | |||
146 | void WebWidget::setReadOnly(bool readOnly) | 112 | void WebWidget::setReadOnly(bool readOnly) | ||
147 | { | 113 | { | ||
148 | mWebSiteEdit->setReadOnly(readOnly); | 114 | mWebSiteEdit->setReadOnly(readOnly); | ||
149 | mAddButton->setEnabled(!readOnly); | 115 | mAddButton->setEnabled(!readOnly); | ||
150 | mRemoveButton->setEnabled(!readOnly); | 116 | mRemoveButton->setEnabled(!readOnly); | ||
151 | mWebType->setEnabled(!readOnly); | 117 | mWebType->setEnabled(!readOnly); | ||
152 | } | 118 | } | ||
153 | 119 | | |||
154 | void WebWidget::slotPreferredChanged() | 120 | void WebWidget::slotPreferredChanged() | ||
155 | { | 121 | { | ||
156 | Q_EMIT preferredChanged(this); | 122 | Q_EMIT preferredChanged(this); | ||
157 | } | 123 | } |