diff options
author | Eike Rathke <erack@redhat.com> | 2014-12-12 14:49:09 +0100 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2014-12-15 14:00:00 +0200 |
commit | 3910b0fc3c2085e3213656d2e4319945b443777b (patch) | |
tree | ec728e4f634ef4035c75de8d814bac758199f722 | |
parent | fix range input in chart data source dialog (diff) | |
download | core-3910b0fc3c2085e3213656d2e4319945b443777b.tar.gz core-3910b0fc3c2085e3213656d2e4319945b443777b.zip |
resolved fdo#86809 connect filter conditions correctly
Maybe since 0960ec3e1b7b0d872d1f84d2d56f480a4df08b21 all conditions of a
single filter stack were OR connected, regardless whether filter-and was
given in the file.
Change-Id: Ifb423ccc7deb42bb6bba0bfc810607633f2c342c
(cherry picked from commit b500e60b32b5cf8fd61beb7476c2c29e65aee3e4)
Reviewed-on: https://gerrit.libreoffice.org/13449
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
-rw-r--r-- | sc/source/filter/xml/xmlfilti.cxx | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/sc/source/filter/xml/xmlfilti.cxx b/sc/source/filter/xml/xmlfilti.cxx index 75b07307f0fe..f89b033daab4 100644 --- a/sc/source/filter/xml/xmlfilti.cxx +++ b/sc/source/filter/xml/xmlfilti.cxx @@ -178,12 +178,19 @@ bool ScXMLFilterContext::GetConnection() // secondary item gets the current connection. return rItem.mbOr; + // The next condition of this stack will get the current connection. + ++rItem.mnCondCount; + if (maConnStack.size() < 2) // There is no last stack. Likely the first condition in the first - // stack whose connection is not used. - return true; + // stack whose connection is not used. Default in + // ScQueryEntry::eConnect is SC_AND, so return false (AND instead of + // OR) here. Otherwise, when saving the document again, we'd write a + // uselessly stacked + // <table:filter-or><table:filter-and>...</table:filter-and></table:filter-or> + // for two conditions connected with AND. + return false; - ++rItem.mnCondCount; std::vector<ConnStackItem>::reverse_iterator itr = maConnStack.rbegin(); ++itr; return itr->mbOr; // connection of the last stack. |