[SCM] ktp-accounts-kcm packaging branch, master, updated. debian/15.12.1-1-1157-gc4589c5
Maximiliano Curia
maxy at moszumanska.debian.org
Fri May 27 23:57:28 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/applications/ktp-accounts-kcm.git;a=commitdiff;h=9c8f2bf
The following commit has been merged in the master branch:
commit 9c8f2bf05b07a4ad41512a36edbc1e2623ee4db0
Author: George Goldberg <grundleborg at googlemail.com>
Date: Thu Jul 23 20:55:37 2009 +0000
Correctly detect if a parameter is of type bool, as well as setting data back to the model when parameters are edited in the view.
svn path=/trunk/playground/network/telepathy-accounts-kcm/; revision=1001640
---
src/parameter-edit-delegate.cpp | 17 ++++++++++++++---
src/parameter-edit-delegate.h | 3 +++
src/parameter-edit-model.cpp | 25 +++++++++++++++++++++++++
src/parameter-edit-model.h | 1 +
src/parameter-edit-widget.cpp | 9 +++++++++
src/parameter-edit-widget.h | 3 +++
src/parameter-item.cpp | 7 ++++++-
src/parameter-item.h | 2 ++
8 files changed, 63 insertions(+), 4 deletions(-)
diff --git a/src/parameter-edit-delegate.cpp b/src/parameter-edit-delegate.cpp
index c27cbb5..6968ef9 100644
--- a/src/parameter-edit-delegate.cpp
+++ b/src/parameter-edit-delegate.cpp
@@ -73,6 +73,7 @@ void ParameterEditDelegate::updateItemWidgets(const QList<QWidget*> widgets,
// Draw the label showing the name of the parameter
QLabel *nameLabel = qobject_cast<QLabel*>(widgets.at(0));
+
nameLabel->setText(index.model()->data(index, ParameterEditModel::NameRole).toString());
nameLabel->move(margin, 0);
nameLabel->resize(QSize(((right - (4 * margin)) / 2), option.rect.height()));
@@ -87,11 +88,12 @@ void ParameterEditDelegate::updateItemWidgets(const QList<QWidget*> widgets,
// See what type the parameter is, and draw the appropriate widget for it.
// FIXME: Support int/uint types with appropriate validation.
- if (index.model()->data(index, ParameterEditModel::TypeRole) == QVariant::Bool) {
+ if (index.model()->data(index, ParameterEditModel::TypeRole).type() == QVariant::Bool) {
// Bool type. Draw a checkbox.
checkBox->setChecked(index.model()->data(index, ParameterEditModel::ValueRole).toBool());
checkBox->move((right / 2) + margin, (option.rect.height() - checkBox->size().height()) / 2);
checkBox->show();
+ checkBox->setFocus(Qt::OtherFocusReason);
} else {
// For any other type, treat it as a string type.
// FIXME: Support asterisking out the entry in secret parameters
@@ -99,6 +101,7 @@ void ParameterEditDelegate::updateItemWidgets(const QList<QWidget*> widgets,
lineEdit->move((right / 2) + margin, (option.rect.height() - lineEdit->size().height()) / 2);
lineEdit->resize(QSize(((right - (4 * margin)) / 2), lineEdit->size().height()));
lineEdit->show();
+ lineEdit->setFocus(Qt::OtherFocusReason);
}
}
@@ -139,12 +142,20 @@ QSize ParameterEditDelegate::sizeHint(const QStyleOptionViewItem &option,
void ParameterEditDelegate::onLineEditTextChanged(QString text)
{
- // TODO: Implement me!
+ kDebug();
+
+ QModelIndex index = focusedIndex();
+
+ Q_EMIT dataChanged(index, QVariant(text), ParameterEditModel::ValueRole);
}
void ParameterEditDelegate::onCheckBoxToggled(bool checked)
{
- // TODO: Implement me!
+ kDebug();
+
+ QModelIndex index = focusedIndex();
+
+ Q_EMIT dataChanged(index, QVariant(checked), ParameterEditModel::ValueRole);
}
diff --git a/src/parameter-edit-delegate.h b/src/parameter-edit-delegate.h
index 40f9219..523dfec 100644
--- a/src/parameter-edit-delegate.h
+++ b/src/parameter-edit-delegate.h
@@ -40,6 +40,9 @@ private Q_SLOTS:
void onLineEditTextChanged(QString text);
void onCheckBoxToggled(bool checked);
+Q_SIGNALS:
+ void dataChanged(const QModelIndex &index, const QVariant &value, int role);
+
protected:
virtual QList<QWidget*> createItemWidgets() const;
virtual void updateItemWidgets(const QList<QWidget*> widgets,
diff --git a/src/parameter-edit-model.cpp b/src/parameter-edit-model.cpp
index d7fbcc3..114cd72 100644
--- a/src/parameter-edit-model.cpp
+++ b/src/parameter-edit-model.cpp
@@ -86,6 +86,31 @@ QVariant ParameterEditModel::data(const QModelIndex &index, int role) const
return data;
}
+bool ParameterEditModel::setData(const QModelIndex &index, const QVariant &value, int role)
+{
+ if (index.row() == -1) {
+ kDebug() << "Invalid item row accessed.";
+ return false;
+ }
+
+ if (index.row() >= m_items.size()) {
+ kWarning() << "Out of range row accessed." << index.row();
+ return false;
+ }
+
+ switch(role)
+ {
+ case ParameterEditModel::ValueRole:
+ m_items.at(index.row())->setValue(value);
+ Q_EMIT dataChanged(index, index);
+ return true;
+ break;
+ default:
+ return false;
+ break;
+ }
+}
+
void ParameterEditModel::addItem(Tp::ProtocolParameter *parameter, const QVariant &originalValue)
{
kDebug();
diff --git a/src/parameter-edit-model.h b/src/parameter-edit-model.h
index cff891f..7836900 100644
--- a/src/parameter-edit-model.h
+++ b/src/parameter-edit-model.h
@@ -50,6 +50,7 @@ public:
virtual int rowCount(const QModelIndex &index) const;
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ virtual bool setData(const QModelIndex &index, const QVariant &value, int role);
void addItem(Tp::ProtocolParameter *parameter, const QVariant &originalValue);
diff --git a/src/parameter-edit-widget.cpp b/src/parameter-edit-widget.cpp
index ce2e9e1..b9a4fcb 100644
--- a/src/parameter-edit-widget.cpp
+++ b/src/parameter-edit-widget.cpp
@@ -56,6 +56,10 @@ ParameterEditWidget::ParameterEditWidget(QWidget *parent)
d->ui->parameterListView->setModel(d->model);
d->delegate = new ParameterEditDelegate(d->ui->parameterListView, this);
d->ui->parameterListView->setItemDelegate(d->delegate);
+
+ connect(d->delegate,
+ SIGNAL(dataChanged(QModelIndex, QVariant, int)),
+ SLOT(onDelegateDataChanged(QModelIndex, QVariant, int)));
}
ParameterEditWidget::~ParameterEditWidget()
@@ -75,3 +79,8 @@ void ParameterEditWidget::setParameters(const Tp::ProtocolParameterList ¶met
}
}
+void ParameterEditWidget::onDelegateDataChanged(const QModelIndex &index, const QVariant &value, int role)
+{
+ d->model->setData(index, value, role);
+}
+
diff --git a/src/parameter-edit-widget.h b/src/parameter-edit-widget.h
index ea77471..642849b 100644
--- a/src/parameter-edit-widget.h
+++ b/src/parameter-edit-widget.h
@@ -35,6 +35,9 @@ public:
void setParameters(const Tp::ProtocolParameterList ¶meters);
+private Q_SLOTS:
+ void onDelegateDataChanged(const QModelIndex &index, const QVariant &value, int role);
+
protected:
class Private;
Private * const d;
diff --git a/src/parameter-item.cpp b/src/parameter-item.cpp
index 2eb08d5..d58cfe0 100644
--- a/src/parameter-item.cpp
+++ b/src/parameter-item.cpp
@@ -29,7 +29,7 @@ ParameterItem::ParameterItem(Tp::ProtocolParameter *parameter,
m_parameter(parameter),
m_originalValue(originalValue)
{
- kDebug();
+ kDebug() << "New parameter:" << parameter->name() << "of type:" << parameter->type();
// To begin with, the current value is the original value.
m_currentValue = m_originalValue;
@@ -73,3 +73,8 @@ bool ParameterItem::isRequiredForRegistration() const
return m_parameter->requiredForRegistration();
}
+void ParameterItem::setValue(const QVariant &value)
+{
+ m_currentValue = value;
+}
+
diff --git a/src/parameter-item.h b/src/parameter-item.h
index 80b51b2..5c8bedc 100644
--- a/src/parameter-item.h
+++ b/src/parameter-item.h
@@ -44,6 +44,8 @@ public:
bool isRequired() const;
bool isRequiredForRegistration() const;
+ void setValue(const QVariant &value);
+
private:
Tp::ProtocolParameter const *m_parameter;
const QVariant m_originalValue;
--
ktp-accounts-kcm packaging
More information about the pkg-kde-commits
mailing list