[SCM] ktp-kded-integration-module packaging branch, master, updated. debian/15.12.1-2-382-gbd961c2
Maximiliano Curia
maxy at moszumanska.debian.org
Sat May 28 00:13:42 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-kded-module.git;a=commitdiff;h=54a4839
The following commit has been merged in the master branch:
commit 54a4839ff6301684876e3df00decca741094e952
Author: Martin Klapetek <martin.klapetek at gmail.com>
Date: Thu Dec 15 17:49:00 2011 +0100
Enable setting presence message for auto-away
Reviewed-by: Dario Freddi
REVIEW: 103417
---
autoaway.cpp | 7 +-
autoaway.h | 3 +
config/CMakeLists.txt | 3 +-
config/column-resizer.cpp | 202 +++++++++++++++++++++++++++++++++++++++
config/column-resizer.h | 41 ++++++++
config/telepathy-kded-config.cpp | 24 +++++
config/telepathy-kded-config.ui | 161 ++++++++++++++++++++-----------
7 files changed, 384 insertions(+), 57 deletions(-)
diff --git a/autoaway.cpp b/autoaway.cpp
index 9f12e60..3826f4b 100644
--- a/autoaway.cpp
+++ b/autoaway.cpp
@@ -64,12 +64,12 @@ void AutoAway::timeoutReached(int id)
m_globalPresence->currentPresence().type() != Tp::Presence::xa().type() ||
m_globalPresence->currentPresence().type() != Tp::Presence::hidden().type()) {
- setRequestedPresence(Tp::Presence::away());
+ setRequestedPresence(Tp::Presence::away(m_awayMessage));
setActive(true);
}
} else if (id == m_extAwayTimeoutId) {
if (m_globalPresence->currentPresence().type() == Tp::Presence::away().type()) {
- setRequestedPresence(Tp::Presence::xa());
+ setRequestedPresence(Tp::Presence::xa(m_xaMessage));
setActive(true);
}
}
@@ -89,6 +89,9 @@ void AutoAway::readConfig()
bool autoAwayEnabled = kdedConfig.readEntry("autoAwayEnabled", true);
bool autoXAEnabled = kdedConfig.readEntry("autoXAEnabled", true);
+ m_awayMessage = kdedConfig.readEntry(QLatin1String("awayMessage"), QString());
+ m_xaMessage = kdedConfig.readEntry(QLatin1String("xaMessage"), QString());
+
//remove all our timeouts and only readd them if auto-away is enabled
//WARNING: can't use removeAllTimeouts because this runs inside KDED, it would remove other KDED timeouts as well
KIdleTime::instance()->removeIdleTimeout(m_awayTimeoutId);
diff --git a/autoaway.h b/autoaway.h
index f3b3b83..8691a4f 100644
--- a/autoaway.h
+++ b/autoaway.h
@@ -51,6 +51,9 @@ private Q_SLOTS:
private:
int m_awayTimeoutId;
int m_extAwayTimeoutId;
+
+ QString m_awayMessage;
+ QString m_xaMessage;
};
#endif // AUTOAWAY_H
diff --git a/config/CMakeLists.txt b/config/CMakeLists.txt
index 607d191..6505631 100644
--- a/config/CMakeLists.txt
+++ b/config/CMakeLists.txt
@@ -1,4 +1,5 @@
set(telepathy_kded_module_config_SRCS
+ column-resizer.cpp
telepathy-kded-config.cpp
)
@@ -19,7 +20,7 @@ target_link_libraries(kcm_telepathy_kded_module_config ${KDE4_KDECORE_LIBS}
install(TARGETS kcm_telepathy_kded_module_config
- DESTINATION ${PLUGIN_INSTALL_DIR})
+ DESTINATION ${PLUGIN_INSTALL_DIR})
install (FILES kcm_telepathy_kded_module_config.desktop
DESTINATION ${SERVICES_INSTALL_DIR}
diff --git a/config/column-resizer.cpp b/config/column-resizer.cpp
new file mode 100644
index 0000000..fbaae93
--- /dev/null
+++ b/config/column-resizer.cpp
@@ -0,0 +1,202 @@
+/*
+ * Copyright 2011 Aurélien Gâteau <agateau at kde.org>
+ * License: LGPL v2.1 or later (see COPYING)
+ */
+#include "column-resizer.h"
+
+#include <QDebug>
+#include <QEvent>
+#include <QFormLayout>
+#include <QGridLayout>
+#include <QTimer>
+#include <QWidget>
+
+class FormLayoutWidgetItem : public QWidgetItem
+{
+public:
+ FormLayoutWidgetItem(QWidget* widget, QFormLayout* formLayout, QFormLayout::ItemRole itemRole)
+ : QWidgetItem(widget)
+ , m_width(-1)
+ , m_formLayout(formLayout)
+ , m_itemRole(itemRole)
+ {}
+
+ QSize sizeHint() const
+ {
+ QSize size = QWidgetItem::sizeHint();
+ if (m_width != -1) {
+ size.setWidth(m_width);
+ }
+ return size;
+ }
+
+ QSize minimumSize() const
+ {
+ QSize size = QWidgetItem::minimumSize();
+ if (m_width != -1) {
+ size.setWidth(m_width);
+ }
+ return size;
+ }
+
+ QSize maximumSize() const
+ {
+ QSize size = QWidgetItem::maximumSize();
+ if (m_width != -1) {
+ size.setWidth(m_width);
+ }
+ return size;
+ }
+
+ void setWidth(int width)
+ {
+ if (width != m_width) {
+ m_width = width;
+ invalidate();
+ }
+ }
+
+ void setGeometry(const QRect& _rect)
+ {
+ QRect rect = _rect;
+ int width = widget()->sizeHint().width();
+ if (m_itemRole == QFormLayout::LabelRole && m_formLayout->labelAlignment() & Qt::AlignRight) {
+ rect.setLeft(rect.right() - width);
+ }
+ QWidgetItem::setGeometry(rect);
+ }
+
+ QFormLayout* formLayout() const
+ {
+ return m_formLayout;
+ }
+
+private:
+ int m_width;
+ QFormLayout* m_formLayout;
+ QFormLayout::ItemRole m_itemRole;
+};
+
+typedef QPair<QGridLayout*, int> GridColumnInfo;
+
+class ColumnResizerPrivate
+{
+public:
+ ColumnResizerPrivate(ColumnResizer* q_ptr)
+ : q(q_ptr)
+ , m_updateTimer(new QTimer(q))
+ {
+ m_updateTimer->setSingleShot(true);
+ m_updateTimer->setInterval(0);
+ QObject::connect(m_updateTimer, SIGNAL(timeout()), q, SLOT(updateWidth()));
+ }
+
+ void scheduleWidthUpdate()
+ {
+ m_updateTimer->start();
+ }
+
+ ColumnResizer* q;
+ QTimer* m_updateTimer;
+ QList<QWidget*> m_widgets;
+ QList<FormLayoutWidgetItem*> m_wrWidgetItemList;
+ QList<GridColumnInfo> m_gridColumnInfoList;
+};
+
+ColumnResizer::ColumnResizer(QObject* parent)
+: QObject(parent)
+, d(new ColumnResizerPrivate(this))
+{}
+
+ColumnResizer::~ColumnResizer()
+{
+ delete d;
+}
+
+void ColumnResizer::addWidget(QWidget* widget)
+{
+ d->m_widgets.append(widget);
+ widget->installEventFilter(this);
+ d->scheduleWidthUpdate();
+}
+
+void ColumnResizer::updateWidth()
+{
+ int width = 0;
+ Q_FOREACH(QWidget* widget, d->m_widgets) {
+ width = qMax(widget->sizeHint().width(), width);
+ }
+ Q_FOREACH(FormLayoutWidgetItem* item, d->m_wrWidgetItemList) {
+ item->setWidth(width);
+ item->formLayout()->update();
+ }
+ Q_FOREACH(GridColumnInfo info, d->m_gridColumnInfoList) {
+ info.first->setColumnMinimumWidth(info.second, width);
+ }
+}
+
+bool ColumnResizer::eventFilter(QObject*, QEvent* event)
+{
+ if (event->type() == QEvent::Resize) {
+ d->scheduleWidthUpdate();
+ }
+ return false;
+}
+
+void ColumnResizer::addWidgetsFromLayout(QLayout* layout, int column)
+{
+ Q_ASSERT(column >= 0);
+ QGridLayout* gridLayout = qobject_cast<QGridLayout*>(layout);
+ QFormLayout* formLayout = qobject_cast<QFormLayout*>(layout);
+ if (gridLayout) {
+ addWidgetsFromGridLayout(gridLayout, column);
+ } else if (formLayout) {
+ if (column > QFormLayout::SpanningRole) {
+ qCritical() << "column should not be more than" << QFormLayout::SpanningRole << "for QFormLayout";
+ return;
+ }
+ QFormLayout::ItemRole role = static_cast<QFormLayout::ItemRole>(column);
+ addWidgetsFromFormLayout(formLayout, role);
+ } else {
+ qCritical() << "Don't know how to handle layout" << layout;
+ }
+}
+
+void ColumnResizer::addWidgetsFromGridLayout(QGridLayout* layout, int column)
+{
+ for (int row = 0; row < layout->rowCount(); ++row) {
+ QLayoutItem* item = layout->itemAtPosition(row, column);
+ if (!item) {
+ continue;
+ }
+ QWidget* widget = item->widget();
+ if (!widget) {
+ continue;
+ }
+ addWidget(widget);
+ }
+ d->m_gridColumnInfoList << GridColumnInfo(layout, column);
+}
+
+void ColumnResizer::addWidgetsFromFormLayout(QFormLayout* layout, QFormLayout::ItemRole role)
+{
+ for (int row = 0; row < layout->rowCount(); ++row) {
+ QLayoutItem* item = layout->itemAt(row, role);
+ if (!item) {
+ continue;
+ }
+ QWidget* widget = item->widget();
+ if (!widget) {
+ continue;
+ }
+ layout->removeItem(item);
+ delete item;
+ FormLayoutWidgetItem* newItem = new FormLayoutWidgetItem(widget, layout, role);
+ layout->setItem(row, role, newItem);
+ addWidget(widget);
+ d->m_wrWidgetItemList << newItem;
+ }
+}
+
+#include <column-resizer.moc>
+// vi: ts=4 sw=4 et
diff --git a/config/column-resizer.h b/config/column-resizer.h
new file mode 100644
index 0000000..1ef751c
--- /dev/null
+++ b/config/column-resizer.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2011 Aurélien Gâteau <agateau at kde.org>
+ * License: LGPL v2.1 or later (see COPYING)
+ */
+#ifndef COLUMNRESIZER_H
+#define COLUMNRESIZER_H
+
+#include <QtGui/QFormLayout>
+
+#include <QtCore/QObject>
+#include <QtCore/QList>
+
+class QEvent;
+class QGridLayout;
+class QLayout;
+class QWidget;
+
+struct ColumnResizerPrivate;
+class ColumnResizer : public QObject
+{
+ Q_OBJECT
+public:
+ ColumnResizer(QObject* parent = 0);
+ ~ColumnResizer();
+
+ void addWidget(QWidget* widget);
+ void addWidgetsFromLayout(QLayout*, int column);
+ void addWidgetsFromGridLayout(QGridLayout*, int column);
+ void addWidgetsFromFormLayout(QFormLayout*, QFormLayout::ItemRole role);
+
+private Q_SLOTS:
+ void updateWidth();
+
+protected:
+ bool eventFilter(QObject*, QEvent* event);
+
+private:
+ ColumnResizerPrivate* const d;
+};
+
+#endif /* COLUMNRESIZER_H */
diff --git a/config/telepathy-kded-config.cpp b/config/telepathy-kded-config.cpp
index c7576b3..186bfe8 100644
--- a/config/telepathy-kded-config.cpp
+++ b/config/telepathy-kded-config.cpp
@@ -25,6 +25,7 @@
#include <KLocalizedString>
#include <QDBusMessage>
#include <QDBusConnection>
+#include "column-resizer.h"
K_PLUGIN_FACTORY(KCMTelepathyKDEDModuleConfigFactory, registerPlugin<TelepathyKDEDConfig>();)
K_EXPORT_PLUGIN(KCMTelepathyKDEDModuleConfigFactory("telepathy_kded_module_config", "telepathy_kded_module"))
@@ -35,6 +36,10 @@ TelepathyKDEDConfig::TelepathyKDEDConfig(QWidget *parent, const QVariantList& ar
ui(new Ui::TelepathyKDEDUi())
{
ui->setupUi(this);
+ ColumnResizer *resizer = new ColumnResizer(this);
+ resizer->addWidgetsFromLayout(ui->incomingFilesGroupBox->layout(), 0);
+ resizer->addWidgetsFromLayout(ui->autoAwayGroupBox->layout(), 0);
+ resizer->addWidgetsFromLayout(ui->nowPlayingGroupBox->layout(), 0);
//TODO enable this when it is supported by the approver
ui->m_autoAcceptLabel->setHidden(true);
@@ -47,6 +52,12 @@ TelepathyKDEDConfig::TelepathyKDEDConfig(QWidget *parent, const QVariantList& ar
ui->m_xaMins->setSuffix(i18nc("Unit after number in spinbox, denotes time unit 'minutes', keep the leading whitespace!",
" minutes"));
+ ui->m_awayMessage->setClickMessage(i18n("Leave empty for no message"));
+ ui->m_awayMessage->setToolTip(ui->m_awayMessage->clickMessage()); //use the same i18n string
+
+ ui->m_xaMessage->setClickMessage(i18n("Leave empty for no message"));
+ ui->m_xaMessage->setToolTip(ui->m_xaMessage->clickMessage()); //use the same i18n string
+
connect(ui->m_downloadUrlRequester, SIGNAL(textChanged(QString)),
this, SLOT(settingsHasChanged()));
connect(ui->m_autoAcceptCheckBox, SIGNAL(stateChanged(int)),
@@ -100,9 +111,13 @@ void TelepathyKDEDConfig::load()
//default away time is 5 minutes
int awayTime = kdedConfig.readEntry(QLatin1String("awayAfter"), 5);
+ QString awayMessage = kdedConfig.readEntry(QLatin1String("awayMessage"), QString());
+
ui->m_awayCheckBox->setChecked(autoAwayEnabled);
ui->m_awayMins->setValue(awayTime);
ui->m_awayMins->setEnabled(autoAwayEnabled);
+ ui->m_awayMessage->setText(awayMessage);
+ ui->m_awayMessage->setEnabled(autoAwayEnabled);
//check for x-away
bool autoXAEnabled = kdedConfig.readEntry(QLatin1String("autoXAEnabled"), true);
@@ -110,11 +125,15 @@ void TelepathyKDEDConfig::load()
//default x-away time is 15 minutes
int xaTime = kdedConfig.readEntry(QLatin1String("xaAfter"), 15);
+ QString xaMessage = kdedConfig.readEntry(QLatin1String("xaMessage"), QString());
+
//enable auto-x-away only if auto-away is enabled
ui->m_xaCheckBox->setChecked(autoXAEnabled && autoAwayEnabled);
ui->m_xaCheckBox->setEnabled(autoAwayEnabled);
ui->m_xaMins->setValue(xaTime);
ui->m_xaMins->setEnabled(autoXAEnabled && autoAwayEnabled);
+ ui->m_xaMessage->setText(xaMessage);
+ ui->m_xaMessage->setEnabled(autoXAEnabled && autoAwayEnabled);
//check if 'Now playing..' is enabled
bool nowPlayingEnabled = kdedConfig.readEntry(QLatin1String("nowPlayingEnabled"), false);
@@ -144,8 +163,10 @@ void TelepathyKDEDConfig::save()
kdedConfig.writeEntry(QLatin1String("autoAwayEnabled"), ui->m_awayCheckBox->isChecked());
kdedConfig.writeEntry(QLatin1String("awayAfter"), ui->m_awayMins->value());
+ kdedConfig.writeEntry(QLatin1String("awayMessage"), ui->m_awayMessage->text());
kdedConfig.writeEntry(QLatin1String("autoXAEnabled"), ui->m_xaCheckBox->isChecked());
kdedConfig.writeEntry(QLatin1String("xaAfter"), ui->m_xaMins->value());
+ kdedConfig.writeEntry(QLatin1String("xaMessage"), ui->m_xaMessage->text());
kdedConfig.writeEntry(QLatin1String("nowPlayingEnabled"), ui->m_nowPlayingCheckBox->isChecked());
kdedConfig.writeEntry(QLatin1String("nowPlayingText"), ui->m_nowPlayingText->text());
kdedConfig.sync();
@@ -160,6 +181,7 @@ void TelepathyKDEDConfig::autoAwayChecked(bool checked)
{
ui->m_xaCheckBox->setEnabled(checked);
ui->m_xaMins->setEnabled(checked && ui->m_xaCheckBox->isChecked());
+ ui->m_xaMessage->setEnabled(checked && ui->m_xaCheckBox->isChecked());
ui->m_awayMins->setEnabled(checked);
@@ -169,6 +191,8 @@ void TelepathyKDEDConfig::autoAwayChecked(bool checked)
void TelepathyKDEDConfig::autoXAChecked(bool checked)
{
ui->m_xaMins->setEnabled(checked);
+ ui->m_xaMessage->setEnabled(checked);
+
Q_EMIT changed(true);
}
diff --git a/config/telepathy-kded-config.ui b/config/telepathy-kded-config.ui
index eba4f64..0d616c5 100644
--- a/config/telepathy-kded-config.ui
+++ b/config/telepathy-kded-config.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>800</width>
- <height>600</height>
+ <width>669</width>
+ <height>517</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
@@ -46,7 +46,7 @@
<string>Auto-accept file transfers:</string>
</property>
<property name="buddy">
- <cstring>m_AutoAcceptCheckBox</cstring>
+ <cstring>m_autoAcceptCheckBox</cstring>
</property>
</widget>
</item>
@@ -82,27 +82,10 @@
<string>Auto away</string>
</property>
<layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Set my status to:</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QCheckBox" name="m_awayCheckBox">
- <property name="text">
- <string>Away</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item row="0" column="4">
+ <item row="2" column="0">
<widget class="QLabel" name="m_awayMinsLabel">
<property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
@@ -110,12 +93,15 @@
<property name="text">
<string>After:</string>
</property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
<property name="buddy">
<cstring>m_awayMins</cstring>
</property>
</widget>
</item>
- <item row="0" column="6">
+ <item row="2" column="2">
<widget class="QSpinBox" name="m_awayMins">
<property name="suffix">
<string/>
@@ -125,21 +111,8 @@
</property>
</widget>
</item>
- <item row="1" column="1">
- <widget class="QCheckBox" name="m_xaCheckBox">
- <property name="text">
- <string>Not available</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- <property name="autoExclusive">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- <item row="1" column="4">
- <widget class="QLabel" name="m_xaMinsLabel">
+ <item row="2" column="3">
+ <widget class="QLabel" name="label_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -147,14 +120,31 @@
</sizepolicy>
</property>
<property name="text">
- <string>After:</string>
+ <string>of inactivity</string>
</property>
- <property name="buddy">
- <cstring>m_xaMins</cstring>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="m_awayMessageLabel">
+ <property name="text">
+ <string>With message:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2" colspan="4">
+ <widget class="KLineEdit" name="m_awayMessage"/>
+ </item>
+ <item row="4" column="0" colspan="6">
+ <widget class="Line" name="line">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
- <item row="1" column="6">
+ <item row="6" column="2">
<widget class="QSpinBox" name="m_xaMins">
<property name="suffix">
<string/>
@@ -164,8 +154,8 @@
</property>
</widget>
</item>
- <item row="0" column="7">
- <widget class="QLabel" name="label_2">
+ <item row="6" column="3">
+ <widget class="QLabel" name="label_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -177,39 +167,97 @@
</property>
</widget>
</item>
- <item row="1" column="7">
- <widget class="QLabel" name="label_3">
+ <item row="7" column="0">
+ <widget class="QLabel" name="m_xaMessageLabel">
<property name="text">
- <string>of inactivity</string>
+ <string>With message:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
- <item row="1" column="2">
- <spacer name="horizontalSpacer_2">
+ <item row="7" column="2" colspan="4">
+ <widget class="KLineEdit" name="m_xaMessage"/>
+ </item>
+ <item row="2" column="5">
+ <spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
- <width>456</width>
+ <width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
- <item row="0" column="2">
- <spacer name="horizontalSpacer">
+ <item row="6" column="4" colspan="2">
+ <spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
- <width>456</width>
+ <width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Set my status to:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0">
+ <widget class="QLabel" name="m_xaMinsLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>After:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="buddy">
+ <cstring>m_xaMins</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
+ <widget class="QCheckBox" name="m_awayCheckBox">
+ <property name="text">
+ <string>Away</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="2">
+ <widget class="QCheckBox" name="m_xaCheckBox">
+ <property name="text">
+ <string>Not available</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="autoExclusive">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</item>
@@ -255,7 +303,7 @@
</property>
</widget>
</item>
- <item row="1" column="1">
+ <item row="3" column="1">
<widget class="QLineEdit" name="m_nowPlayingText">
<property name="text">
<string/>
@@ -282,6 +330,11 @@
</widget>
<customwidgets>
<customwidget>
+ <class>KLineEdit</class>
+ <extends>QLineEdit</extends>
+ <header>klineedit.h</header>
+ </customwidget>
+ <customwidget>
<class>KUrlRequester</class>
<extends>QFrame</extends>
<header>kurlrequester.h</header>
--
ktp-kded-integration-module packaging
More information about the pkg-kde-commits
mailing list