diff --git a/src/qtgui/reslist.cpp b/src/qtgui/reslist.cpp index d33dc2b2..0440f47c 100644 --- a/src/qtgui/reslist.cpp +++ b/src/qtgui/reslist.cpp @@ -179,6 +179,8 @@ void ResList::setDocSource() m_sortspecs, title)); } + // Reset the page size in case the preference was changed + m_pager->setPageSize(prefs.respagesize); m_pager->setDocSource(m_docSource); resultPageNext(); } @@ -382,6 +384,8 @@ void ResList::resultPageBack() // Go to the first page void ResList::resultPageFirst() { + // In case the preference was changed + m_pager->setPageSize(prefs.respagesize); m_pager->resultPageFirst(); displayPage(); } diff --git a/src/query/reslistpager.h b/src/query/reslistpager.h index df95c046..5ac04fa8 100644 --- a/src/query/reslistpager.h +++ b/src/query/reslistpager.h @@ -15,18 +15,32 @@ class PlainToRich; */ class ResListPager { public: - ResListPager(int pagesize=10) : m_pagesize(pagesize) {initall();} + ResListPager(int pagesize=10) : + m_pagesize(pagesize), + m_newpagesize(pagesize), + m_winfirst(-1), + m_hasNext(false), + m_hiliter(0) + { + } virtual ~ResListPager() {} - void setHighLighter(PlainToRich *ptr) {m_hiliter = ptr;} + void setHighLighter(PlainToRich *ptr) + { + m_hiliter = ptr; + } void setDocSource(RefCntr src) { + m_pagesize = m_newpagesize; m_winfirst = -1; m_hasNext = false; - m_respage.clear(); m_docSource = src; + m_respage.clear(); + } + void setPageSize(int ps) + { + m_newpagesize = ps; } - int pageNumber() { if (m_winfirst < 0 || m_pagesize <= 0) @@ -38,15 +52,16 @@ public: bool hasNext() {return m_hasNext;} bool hasPrev() {return m_winfirst > 0;} bool atBot() {return m_winfirst <= 0;} + void resultPageFirst() { + m_winfirst = -1; + m_pagesize = m_newpagesize; + resultPageNext(); + } void resultPageBack() { if (m_winfirst <= 0) return; m_winfirst -= 2 * m_pagesize; resultPageNext(); } - void resultPageFirst() { - m_winfirst = -1; - resultPageNext(); - } void resultPageNext(); void displayPage(); bool pageEmpty() {return m_respage.size() == 0;} @@ -70,23 +85,16 @@ public: virtual void suggest(const vector, vector&sugg) { sugg.clear(); } -private: - void initall() - { - m_winfirst = -1; - m_hasNext = false; - m_respage.clear(); - m_hiliter = 0; - } +private: + int m_pagesize; + int m_newpagesize; // First docnum (from docseq) in current page int m_winfirst; - RefCntr m_docSource; - const int m_pagesize; - bool m_hasNext; - vector m_respage; PlainToRich *m_hiliter; + RefCntr m_docSource; + vector m_respage; }; #endif /* _reslistpager_h_included_ */