-/** Switch p_buf to point to next document buffer.
- **
- ** Return true if restarted from master-document buffer.
- **
- ** @note
- ** Not using p_buf->allRelatives() here, because I'm not sure
- ** whether or not the returned order is independent of p_buf.
- **/
-bool next_document_buffer(Buffer * & p_buf) {
- Buffer *p_master = p_buf;
- Buffer *p_old;
- do {
- p_old = p_master;
- p_master = const_cast<Buffer *>(p_master->masterBuffer());
- LYXERR(Debug::FIND, "p_old=" << p_old << ", p_master=" << p_master);
- } while (p_master != p_old);
- LASSERT(p_master != NULL, /**/);
- vector<Buffer *> v_children;
- /* Root master added as first buffer in the vector */
- v_children.push_back(p_master);
- p_master->getChildren(v_children, true);
- LYXERR(Debug::FIND, "v_children.size()=" << v_children.size());
- vector<Buffer *>::const_iterator it = find(v_children.begin(), v_children.end(), p_buf);
- LASSERT(it != v_children.end(), /**/)
- ++it;
- if (it == v_children.end()) {
- p_buf = *v_children.begin();
- return true;
- }
- p_buf = *it;
- return false;
-}
-
-
-/** Switch p_buf to point to previous document buffer.
- **
- ** Return true if restarted from last child buffer.
- **
- ** @note
- ** Not using p_buf->allRelatives() here, because I'm not sure
- ** whether or not the returned order is independent of p_buf.
- **/
-bool prev_document_buffer(Buffer * & p_buf) {
- Buffer *p_master = p_buf;
- Buffer *p_old;
- do {
- p_old = p_master;
- p_master = const_cast<Buffer *>(p_master->masterBuffer());
- LYXERR(Debug::FIND, "p_old=" << p_old << ", p_master=" << p_master);
- } while (p_master != p_old);
- LASSERT(p_master != NULL, /**/);
- vector<Buffer *> v_children;
- /* Root master added as first buffer in the vector */
- v_children.push_back(p_master);
- p_master->getChildren(v_children, true);
- LYXERR(Debug::FIND, "v_children.size()=" << v_children.size());
- vector<Buffer *>::const_iterator it = find(v_children.begin(), v_children.end(), p_buf);
- LASSERT(it != v_children.end(), /**/)
- if (it == v_children.begin()) {
- it = v_children.end();
- --it;
- p_buf = *it;
- return true;
- }
- --it;
- p_buf = *it;
- return false;
-}
-
-
-/** Switch p_buf to point to next open buffer.
- **
- ** Return true if restarted from first open buffer.
- **/
-bool next_open_buffer(Buffer * & p_buf) {
- p_buf = theBufferList().next(p_buf);
- return p_buf == *theBufferList().begin();
-}
-
-
-/** Switch p_buf to point to previous open buffer.
- **
- ** Return true if restarted from last open buffer.
- **/
-bool prev_open_buffer(Buffer * & p_buf) {
- p_buf = theBufferList().previous(p_buf);
- return p_buf == *(theBufferList().end() - 1);
-}
-
-