Kaydet (Commit) c38e49e8 authored tarafından Katarina Behrens's avatar Katarina Behrens

Implement setValue of fpicker checkboxes, signal+slot

Change-Id: I0d75ef9f5584935d05a0526a626145e00761efd9
üst d61f5db2
...@@ -91,18 +91,6 @@ QString KDE5FilePicker::getCurrentFilter() const ...@@ -91,18 +91,6 @@ QString KDE5FilePicker::getCurrentFilter() const
return filter; return filter;
} }
void KDE5FilePicker::setValue(sal_Int16 controlId, sal_Int16 nControlAction, bool value)
{
if (_customWidgets.contains(controlId))
{
QCheckBox* cb = dynamic_cast<QCheckBox*>(_customWidgets.value(controlId));
if (cb)
cb->setChecked(value);
}
else
qWarning() << "set value on unknown control" << controlId;
}
bool KDE5FilePicker::getValue(sal_Int16 controlId, sal_Int16 nControlAction) const bool KDE5FilePicker::getValue(sal_Int16 controlId, sal_Int16 nControlAction) const
{ {
bool ret = false; bool ret = false;
......
...@@ -174,10 +174,16 @@ protected: ...@@ -174,10 +174,16 @@ protected:
Q_SIGNALS: Q_SIGNALS:
void setTitleSignal(const OUString& rTitle); void setTitleSignal(const OUString& rTitle);
void setDisplayDirectorySignal(const OUString& rDir); void setDisplayDirectorySignal(const OUString& rDir);
void setValueSignal(sal_Int16 nControlId, sal_Int16 nControlAction,
const css::uno::Any& rValue);
private Q_SLOTS: private Q_SLOTS:
void setTitleSlot(const OUString& rTitle) { return setTitle(rTitle); } void setTitleSlot(const OUString& rTitle) { return setTitle(rTitle); }
void setDisplayDirectorySlot(const OUString& rDir) { return setDisplayDirectory(rDir); } void setDisplayDirectorySlot(const OUString& rDir) { return setDisplayDirectory(rDir); }
void setValueSlot(sal_Int16 nControlId, sal_Int16 nControlAction, const css::uno::Any& rValue)
{
return setValue(nControlAction, nControlAction, rValue);
}
}; };
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -105,6 +105,8 @@ KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode) ...@@ -105,6 +105,8 @@ KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode)
connect(this, &KDE5FilePicker::setDisplayDirectorySignal /*(const OUString&)*/, this, connect(this, &KDE5FilePicker::setDisplayDirectorySignal /*(const OUString&)*/, this,
&KDE5FilePicker::setDisplayDirectorySlot /*(const OUString&)*/, &KDE5FilePicker::setDisplayDirectorySlot /*(const OUString&)*/,
Qt::BlockingQueuedConnection); Qt::BlockingQueuedConnection);
connect(this, &KDE5FilePicker::setValueSignal, this, &KDE5FilePicker::setValueSlot,
Qt::BlockingQueuedConnection);
qApp->installEventFilter(this); qApp->installEventFilter(this);
setMultiSelectionMode(false); setMultiSelectionMode(false);
...@@ -205,6 +207,23 @@ void SAL_CALL KDE5FilePicker::appendFilterGroup(const OUString& /*rGroupTitle*/, ...@@ -205,6 +207,23 @@ void SAL_CALL KDE5FilePicker::appendFilterGroup(const OUString& /*rGroupTitle*/,
void SAL_CALL KDE5FilePicker::setValue(sal_Int16 controlId, sal_Int16 nControlAction, void SAL_CALL KDE5FilePicker::setValue(sal_Int16 controlId, sal_Int16 nControlAction,
const uno::Any& value) const uno::Any& value)
{ {
if (qApp->thread() != QThread::currentThread())
{
SolarMutexReleaser aReleaser;
return Q_EMIT setValueSignal(controlId, nControlAction, value);
}
if (_customWidgets.contains(controlId))
{
bool bChecked = false;
value >>= bChecked;
QCheckBox* cb = dynamic_cast<QCheckBox*>(_customWidgets.value(controlId));
if (cb)
cb->setChecked(bChecked);
}
else
SAL_WARN("vcl.kde5", "set value on unknown control " << controlId);
} }
uno::Any SAL_CALL KDE5FilePicker::getValue(sal_Int16 controlId, sal_Int16 nControlAction) uno::Any SAL_CALL KDE5FilePicker::getValue(sal_Int16 controlId, sal_Int16 nControlAction)
...@@ -433,7 +452,6 @@ void SAL_CALL KDE5FilePicker::initialize(const uno::Sequence<uno::Any>& args) ...@@ -433,7 +452,6 @@ void SAL_CALL KDE5FilePicker::initialize(const uno::Sequence<uno::Any>& args)
OSL_TRACE("Unknown templates %d", templateId); OSL_TRACE("Unknown templates %d", templateId);
return; return;
} }
setTitle(VclResId(saveDialog ? STR_FPICKER_SAVE : STR_FPICKER_OPEN)); setTitle(VclResId(saveDialog ? STR_FPICKER_SAVE : STR_FPICKER_OPEN));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment