branch: Fix bug #5600: View source panel isn't updating after restart.

see r37096.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_1_6_X@37103 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Vincent van Ravesteijn 2011-01-04 10:12:40 +00:00
parent 68422fbb85
commit c0571a40f4
3 changed files with 24 additions and 5 deletions

View File

@ -42,12 +42,13 @@ namespace frontend {
ViewSourceWidget::ViewSourceWidget() ViewSourceWidget::ViewSourceWidget()
: bv_(0), document_(new QTextDocument(this)), : bv_(0), document_(new QTextDocument(this)),
highlighter_(new LaTeXHighlighter(document_)) highlighter_(new LaTeXHighlighter(document_)),
force_getcontent_(true)
{ {
setupUi(this); setupUi(this);
connect(viewFullSourceCB, SIGNAL(clicked()), connect(viewFullSourceCB, SIGNAL(clicked()),
this, SLOT(updateView())); this, SLOT(fullSourceChanged()));
connect(autoUpdateCB, SIGNAL(toggled(bool)), connect(autoUpdateCB, SIGNAL(toggled(bool)),
updatePB, SLOT(setDisabled(bool))); updatePB, SLOT(setDisabled(bool)));
connect(autoUpdateCB, SIGNAL(toggled(bool)), connect(autoUpdateCB, SIGNAL(toggled(bool)),
@ -85,7 +86,8 @@ static size_t crcCheck(docstring const & s)
\param fullSource get full source code \param fullSource get full source code
\return true if the content has changed since last call. \return true if the content has changed since last call.
*/ */
static bool getContent(BufferView const * view, bool fullSource, QString & qstr) static bool getContent(BufferView const * view, bool fullSource,
QString & qstr, bool force_getcontent)
{ {
// get the *top* level paragraphs that contain the cursor, // get the *top* level paragraphs that contain the cursor,
// or the selected text // or the selected text
@ -106,7 +108,7 @@ static bool getContent(BufferView const * view, bool fullSource, QString & qstr)
docstring s = ostr.str(); docstring s = ostr.str();
static size_t crc = 0; static size_t crc = 0;
size_t newcrc = crcCheck(s); size_t newcrc = crcCheck(s);
if (newcrc == crc) if (newcrc == crc && !force_getcontent)
return false; return false;
crc = newcrc; crc = newcrc;
qstr = toqstr(s); qstr = toqstr(s);
@ -116,11 +118,20 @@ static bool getContent(BufferView const * view, bool fullSource, QString & qstr)
void ViewSourceWidget::setBufferView(BufferView const * bv) void ViewSourceWidget::setBufferView(BufferView const * bv)
{ {
if (bv_ != bv)
force_getcontent_ = true;
bv_ = bv; bv_ = bv;
setEnabled(bv ? true : false); setEnabled(bv ? true : false);
} }
void ViewSourceWidget::fullSourceChanged()
{
if (autoUpdateCB->isChecked())
updateView();
}
void ViewSourceWidget::updateView() void ViewSourceWidget::updateView()
{ {
if (!bv_) { if (!bv_) {
@ -132,7 +143,8 @@ void ViewSourceWidget::updateView()
setEnabled(true); setEnabled(true);
QString content; QString content;
if (getContent(bv_, viewFullSourceCB->isChecked(), content)) if (getContent(bv_, viewFullSourceCB->isChecked(), content,
force_getcontent_))
document_->setPlainText(content); document_->setPlainText(content);
CursorSlice beg = bv_->cursor().selectionBegin().bottom(); CursorSlice beg = bv_->cursor().selectionBegin().bottom();

View File

@ -44,6 +44,8 @@ public:
public Q_SLOTS: public Q_SLOTS:
// update content // update content
void updateView(); void updateView();
///
void fullSourceChanged();
private: private:
/// ///
@ -52,6 +54,8 @@ private:
QTextDocument * document_; QTextDocument * document_;
/// LaTeX syntax highlighter /// LaTeX syntax highlighter
LaTeXHighlighter * highlighter_; LaTeXHighlighter * highlighter_;
///
bool force_getcontent_;
}; };

View File

@ -163,6 +163,9 @@ What's new
statusbar for recent files items; absolute paths in tooltips of statusbar for recent files items; absolute paths in tooltips of
tabs; and longer paths in the window title (bug 7182). tabs; and longer paths in the window title (bug 7182).
- Fix the response of the update button of the view source window
after reopening a file (bug 5600).
* DOCUMENTATION AND LOCALIZATION * DOCUMENTATION AND LOCALIZATION