#include "support/convert.h"
#include "support/debug.h"
#include "support/gettext.h"
-#include "support/FileName.h"
#include "support/lassert.h"
#include "support/TempFile.h"
GuiWorkArea::Private::Private(GuiWorkArea * parent)
-: p(parent), screen_(0), buffer_view_(0), read_only_(false), lyx_view_(0),
-cursor_visible_(false), cursor_(0),
-need_resize_(false), schedule_redraw_(false), preedit_lines_(1),
-pixel_ratio_(1.0),
-completer_(new GuiCompleter(p, p)), dialog_mode_(false)
+: p(parent), screen_(0), buffer_view_(0), lyx_view_(0),
+ cursor_visible_(false), cursor_(0),
+ need_resize_(false), schedule_redraw_(false), preedit_lines_(1),
+ pixel_ratio_(1.0),
+ completer_(new GuiCompleter(p, p)), dialog_mode_(false),
+ read_only_(false), clean_(true)
{
}
if (buffer.text().paragraphs().size() > 4)
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
QTimer::singleShot(50, this, SLOT(fixVerticalScrollBar()));
+ Q_EMIT bufferViewChanged();
}
GuiPainter pain(d->screen_, pixelRatio());
d->buffer_view_->updateMetrics();
d->buffer_view_->draw(pain);
+ // FIXME: shall we use real_current_font here? (see #10478)
FontInfo font = d->buffer_view_->cursor().getFont().fontInfo();
FontMetrics const & fm = theFontMetrics(font);
int height = fm.maxHeight();
void GuiWorkArea::updateWindowTitle()
{
- docstring maximize_title;
- docstring minimize_title;
-
- Buffer const & buf = d->buffer_view_->buffer();
- FileName const file_name = buf.fileName();
- if (!file_name.empty()) {
- maximize_title = file_name.displayName(130);
- minimize_title = from_utf8(file_name.onlyFileName());
- if (buf.lyxvc().inUse()) {
- if (buf.lyxvc().locking())
- maximize_title += _(" (version control, locking)");
- else
- maximize_title += _(" (version control)");
- }
- if (!buf.isClean()) {
- maximize_title += _(" (changed)");
- minimize_title += char_type('*');
- }
- if (buf.isReadonly())
- maximize_title += _(" (read only)");
- }
-
- QString const new_title = toqstr(maximize_title);
- if (new_title != windowTitle()) {
- QWidget::setWindowTitle(new_title);
- QWidget::setWindowIconText(toqstr(minimize_title));
- titleChanged(this);
+ Buffer const & buf = bufferView().buffer();
+ if (buf.fileName() != d->file_name_ || buf.isReadonly() != d->read_only_
+ || buf.lyxvc().vcstatus() != d->vc_status_ || buf.isClean() != d->clean_) {
+ d->file_name_ = buf.fileName();
+ d->read_only_ = buf.isReadonly();
+ d->vc_status_ = buf.lyxvc().vcstatus();
+ d->clean_ = buf.isClean();
+ Q_EMIT titleChanged(this);
}
}