[Libreoffice-commits] core.git: Branch 'feature/qt5+kde5' - 3 commits - vcl/qt5 vcl/unx
Katarina Behrens
Katarina.Behrens at cib.de
Fri Jun 22 13:55:56 UTC 2018
Rebased ref, commits from common ancestor:
commit d7f5d35a389b1f77cbec4650df371880f094f041
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date: Fri Jun 22 15:53:51 2018 +0200
Ignore closeEvent if user has vetoed closing the frame
Change-Id: Ib86ec0d297e23c02ad50ce1044859e029eae2ba9
diff --git a/vcl/qt5/Qt5Widget.cxx b/vcl/qt5/Qt5Widget.cxx
index 8c62280d3f99..3e3448381946 100644
--- a/vcl/qt5/Qt5Widget.cxx
+++ b/vcl/qt5/Qt5Widget.cxx
@@ -199,9 +199,18 @@ void VclQtMixinBase::mixinShowEvent(QShowEvent*)
m_pFrame->CallCallback(SalEvent::Paint, &aPaintEvt);
}
-void VclQtMixinBase::mixinCloseEvent(QCloseEvent* /*pEvent*/)
+void VclQtMixinBase::mixinCloseEvent(QCloseEvent* pEvent)
{
- m_pFrame->CallCallback(SalEvent::Close, nullptr);
+ bool bRet = false;
+ bRet = m_pFrame->CallCallback(SalEvent::Close, nullptr);
+
+ if (bRet)
+ pEvent->accept();
+ // SalEvent::Close returning false may mean that user has vetoed
+ // closing the frame ("you have unsaved changes" dialog for example)
+ // We should't process the event in such case
+ else
+ pEvent->ignore();
}
static sal_uInt16 GetKeyCode(int keyval)
commit 31c7fe19ca88831ec8405925e3f6d772450731f1
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date: Fri Jun 22 15:20:34 2018 +0200
Rearrange and annotate funcs by XInterface
Change-Id: Ie429074fdbe8fb4e28b1af47486bc70c5f8070e8
diff --git a/vcl/unx/kde5/KDE5FilePicker2.cxx b/vcl/unx/kde5/KDE5FilePicker2.cxx
index d4e6d507dd79..123df3a09118 100644
--- a/vcl/unx/kde5/KDE5FilePicker2.cxx
+++ b/vcl/unx/kde5/KDE5FilePicker2.cxx
@@ -105,17 +105,33 @@ KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode)
connect(_dialog, &QFileDialog::filterSelected, this, &KDE5FilePicker::filterChanged);
connect(_dialog, &QFileDialog::fileSelected, this, &KDE5FilePicker::selectionChanged);
- connect(this, &KDE5FilePicker::setTitleSignal /*(const OUString&)*/, this,
- &KDE5FilePicker::setTitleSlot /*(const OUString&)*/, Qt::BlockingQueuedConnection);
- connect(this, &KDE5FilePicker::setDefaultNameSignal, this, &KDE5FilePicker::setDefaultNameSlot,
+
+ // XExecutableDialog
+ connect(this, &KDE5FilePicker::setTitleSignal, this, &KDE5FilePicker::setTitleSlot,
Qt::BlockingQueuedConnection);
- connect(this, &KDE5FilePicker::setDisplayDirectorySignal /*(const OUString&)*/, this,
- &KDE5FilePicker::setDisplayDirectorySlot /*(const OUString&)*/,
+ // XFilePicker
+ connect(this, &KDE5FilePicker::setMultiSelectionSignal, this,
+ &KDE5FilePicker::setMultiSelectionSlot, Qt::BlockingQueuedConnection);
+ connect(this, &KDE5FilePicker::setDefaultNameSignal, this, &KDE5FilePicker::setDefaultNameSlot,
Qt::BlockingQueuedConnection);
+ connect(this, &KDE5FilePicker::setDisplayDirectorySignal, this,
+ &KDE5FilePicker::setDisplayDirectorySlot, Qt::BlockingQueuedConnection);
connect(this, &KDE5FilePicker::getDisplayDirectorySignal, this,
&KDE5FilePicker::getDisplayDirectorySlot, Qt::BlockingQueuedConnection);
- connect(this, &KDE5FilePicker::setMultiSelectionSignal, this,
- &KDE5FilePicker::setMultiSelectionSlot, Qt::BlockingQueuedConnection);
+ // XFolderPicker
+ connect(this, &KDE5FilePicker::getDirectorySignal, this, &KDE5FilePicker::getDirectorySlot,
+ Qt::BlockingQueuedConnection);
+ // XFilterManager
+ connect(this, &KDE5FilePicker::appendFilterSignal, this, &KDE5FilePicker::appendFilterSlot,
+ Qt::BlockingQueuedConnection);
+ connect(this, &KDE5FilePicker::setCurrentFilterSignal, this,
+ &KDE5FilePicker::setCurrentFilterSlot, Qt::BlockingQueuedConnection);
+ connect(this, &KDE5FilePicker::getCurrentFilterSignal, this,
+ &KDE5FilePicker::getCurrentFilterSlot, Qt::BlockingQueuedConnection);
+ // XFilterGroupManager
+ connect(this, &KDE5FilePicker::appendFilterGroupSignal, this,
+ &KDE5FilePicker::appendFilterGroupSlot, Qt::BlockingQueuedConnection);
+ // XFilePickerControlAccess
connect(this, &KDE5FilePicker::setValueSignal, this, &KDE5FilePicker::setValueSlot,
Qt::BlockingQueuedConnection);
connect(this, &KDE5FilePicker::getValueSignal, this, &KDE5FilePicker::getValueSlot,
@@ -126,18 +142,9 @@ KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode)
Qt::BlockingQueuedConnection);
connect(this, &KDE5FilePicker::enableControlSignal, this, &KDE5FilePicker::enableControlSlot,
Qt::BlockingQueuedConnection);
- connect(this, &KDE5FilePicker::appendFilterSignal, this, &KDE5FilePicker::appendFilterSlot,
- Qt::BlockingQueuedConnection);
- connect(this, &KDE5FilePicker::appendFilterGroupSignal, this,
- &KDE5FilePicker::appendFilterGroupSlot, Qt::BlockingQueuedConnection);
- connect(this, &KDE5FilePicker::setCurrentFilterSignal, this,
- &KDE5FilePicker::setCurrentFilterSlot, Qt::BlockingQueuedConnection);
- connect(this, &KDE5FilePicker::getCurrentFilterSignal, this,
- &KDE5FilePicker::getCurrentFilterSlot, Qt::BlockingQueuedConnection);
+ // XFilePicker2
connect(this, &KDE5FilePicker::getSelectedFilesSignal, this,
&KDE5FilePicker::getSelectedFilesSlot, Qt::BlockingQueuedConnection);
- connect(this, &KDE5FilePicker::getDirectorySignal, this,
- &KDE5FilePicker::getDirectorySlot, Qt::BlockingQueuedConnection);
qApp->installEventFilter(this);
}
@@ -161,6 +168,7 @@ void SAL_CALL KDE5FilePicker::removeFilePickerListener(const uno::Reference<XFil
m_xListener.clear();
}
+// XExecutableDialog
void SAL_CALL KDE5FilePicker::setTitle(const OUString& title)
{
if (qApp->thread() != QThread::currentThread())
@@ -184,6 +192,7 @@ sal_Int16 SAL_CALL KDE5FilePicker::execute()
return _dialog->exec() == QFileDialog::Accepted ? 1 : 0;
}
+// XFilePicker
void SAL_CALL KDE5FilePicker::setMultiSelectionMode(sal_Bool multiSelect)
{
if (qApp->thread() != QThread::currentThread())
@@ -240,6 +249,7 @@ uno::Sequence<OUString> SAL_CALL KDE5FilePicker::getFiles()
return seq;
}
+// XFilePicker2
uno::Sequence<OUString> SAL_CALL KDE5FilePicker::getSelectedFiles()
{
if (qApp->thread() != QThread::currentThread())
@@ -260,6 +270,7 @@ uno::Sequence<OUString> SAL_CALL KDE5FilePicker::getSelectedFiles()
return seq;
}
+// XFilterManager
void SAL_CALL KDE5FilePicker::appendFilter(const OUString& title, const OUString& filter)
{
if (qApp->thread() != QThread::currentThread())
@@ -312,6 +323,7 @@ OUString SAL_CALL KDE5FilePicker::getCurrentFilter()
return filter;
}
+// XFilterGroupManager
void SAL_CALL KDE5FilePicker::appendFilterGroup(const OUString& rGroupTitle,
const uno::Sequence<beans::StringPair>& filters)
{
@@ -329,6 +341,7 @@ void SAL_CALL KDE5FilePicker::appendFilterGroup(const OUString& rGroupTitle,
}
}
+// XFilePickerControlAccess
void SAL_CALL KDE5FilePicker::setValue(sal_Int16 controlId, sal_Int16 nControlAction,
const uno::Any& value)
{
@@ -433,6 +446,7 @@ OUString SAL_CALL KDE5FilePicker::getLabel(sal_Int16 controlId)
return label;
}
+// XFolderPicker
OUString SAL_CALL KDE5FilePicker::getDirectory()
{
if (qApp->thread() != QThread::currentThread())
@@ -546,6 +560,7 @@ OUString KDE5FilePicker::implGetDirectory()
return dir;
}
+// XInitialization
void SAL_CALL KDE5FilePicker::initialize(const uno::Sequence<uno::Any>& args)
{
// parameter checking
@@ -665,11 +680,13 @@ void SAL_CALL KDE5FilePicker::initialize(const uno::Sequence<uno::Any>& args)
setTitle(VclResId(saveDialog ? STR_FPICKER_SAVE : STR_FPICKER_OPEN));
}
+// XCancellable
void SAL_CALL KDE5FilePicker::cancel()
{
// TODO
}
+// XEventListener
void KDE5FilePicker::disposing(const lang::EventObject& rEvent)
{
uno::Reference<XFilePickerListener> xFilePickerListener(rEvent.Source, uno::UNO_QUERY);
@@ -680,6 +697,7 @@ void KDE5FilePicker::disposing(const lang::EventObject& rEvent)
}
}
+// XServiceInfo
OUString SAL_CALL KDE5FilePicker::getImplementationName()
{
return OUString("com.sun.star.ui.dialogs.KDE5FilePicker");
commit 02d0ef7d137e1aacbf623b25a6841455619f3829
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date: Wed Jun 20 11:51:35 2018 +0200
Implement getDirectory, signal+slot
also factor some shared code out into separate func
Change-Id: I49d25eeb4eb647b72dae78c42301091d198eeff4
diff --git a/vcl/unx/kde5/KDE5FilePicker.hxx b/vcl/unx/kde5/KDE5FilePicker.hxx
index 6f175cc375cf..d1a300be014c 100644
--- a/vcl/unx/kde5/KDE5FilePicker.hxx
+++ b/vcl/unx/kde5/KDE5FilePicker.hxx
@@ -157,6 +157,7 @@ public:
private:
//add a custom control widget to the file dialog
void addCustomControl(sal_Int16 controlId);
+ OUString implGetDirectory();
// emit XFilePickerListener controlStateChanged event
void filterChanged();
@@ -171,6 +172,7 @@ Q_SIGNALS:
void setDefaultNameSignal(const OUString& rName);
void setDisplayDirectorySignal(const OUString& rDir);
OUString getDisplayDirectorySignal();
+ OUString getDirectorySignal();
void setValueSignal(sal_Int16 nControlId, sal_Int16 nControlAction,
const css::uno::Any& rValue);
css::uno::Any getValueSignal(sal_Int16 nControlId, sal_Int16 nControlAction);
@@ -189,7 +191,8 @@ private Q_SLOTS:
void setTitleSlot(const OUString& rTitle) { return setTitle(rTitle); }
void setDefaultNameSlot(const OUString& rName) { return setDefaultName(rName); }
void setDisplayDirectorySlot(const OUString& rDir) { return setDisplayDirectory(rDir); }
- OUString getDisplayDirectorySlot() { return getDisplayDirectory(); }
+ OUString getDisplayDirectorySlot() { return implGetDirectory(); }
+ OUString getDirectorySlot() { return implGetDirectory(); }
void setValueSlot(sal_Int16 nControlId, sal_Int16 nControlAction, const css::uno::Any& rValue)
{
return setValue(nControlId, nControlAction, rValue);
diff --git a/vcl/unx/kde5/KDE5FilePicker2.cxx b/vcl/unx/kde5/KDE5FilePicker2.cxx
index 56734b4d36e9..d4e6d507dd79 100644
--- a/vcl/unx/kde5/KDE5FilePicker2.cxx
+++ b/vcl/unx/kde5/KDE5FilePicker2.cxx
@@ -136,6 +136,8 @@ KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode)
&KDE5FilePicker::getCurrentFilterSlot, Qt::BlockingQueuedConnection);
connect(this, &KDE5FilePicker::getSelectedFilesSignal, this,
&KDE5FilePicker::getSelectedFilesSlot, Qt::BlockingQueuedConnection);
+ connect(this, &KDE5FilePicker::getDirectorySignal, this,
+ &KDE5FilePicker::getDirectorySlot, Qt::BlockingQueuedConnection);
qApp->installEventFilter(this);
}
@@ -227,8 +229,7 @@ OUString SAL_CALL KDE5FilePicker::getDisplayDirectory()
return Q_EMIT getDisplayDirectorySignal();
}
- OUString dir = toOUString(_dialog->directoryUrl().url());
- return dir;
+ return implGetDirectory();
}
uno::Sequence<OUString> SAL_CALL KDE5FilePicker::getFiles()
@@ -432,7 +433,16 @@ OUString SAL_CALL KDE5FilePicker::getLabel(sal_Int16 controlId)
return label;
}
-OUString SAL_CALL KDE5FilePicker::getDirectory() { return OUString(); }
+OUString SAL_CALL KDE5FilePicker::getDirectory()
+{
+ if (qApp->thread() != QThread::currentThread())
+ {
+ SolarMutexReleaser aReleaser;
+ return Q_EMIT getDirectorySignal();
+ }
+
+ return implGetDirectory();
+}
void SAL_CALL KDE5FilePicker::setDescription(const OUString&) {}
@@ -530,6 +540,12 @@ void KDE5FilePicker::addCustomControl(sal_Int16 controlId)
}
}
+OUString KDE5FilePicker::implGetDirectory()
+{
+ OUString dir = toOUString(_dialog->directoryUrl().url());
+ return dir;
+}
+
void SAL_CALL KDE5FilePicker::initialize(const uno::Sequence<uno::Any>& args)
{
// parameter checking
More information about the Libreoffice-commits
mailing list