]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiViewSource.cpp
Use QFontMetrics information for underlines (and friends) width and position
[lyx.git] / src / frontends / qt4 / GuiViewSource.cpp
index 0875c82df33430c4df6cb98d21d3935f2dbba215..3fcaed984a97337dbe0c670ee529e9c4931232f1 100644 (file)
@@ -72,7 +72,6 @@ ViewSourceWidget::ViewSourceWidget()
        ///dialog_->viewSourceTV->setAcceptRichText(false);
        // this is personal. I think source code should be in fixed-size font
        QFont font(guiApp->typewriterFontName());
-       font.setKerning(false);
        font.setFixedPitch(true);
        font.setStyleHint(QFont::TypeWriter);
        viewSourceTV->setFont(font);
@@ -94,7 +93,7 @@ static size_t crcCheck(docstring const & s)
        \return true if the content has changed since last call.
  */
 static bool getContent(BufferView const * view, Buffer::OutputWhat output,
-                      QString & qstr, string const format, bool force_getcontent,
+                      QString & qstr, string const format, bool force_getcontent,
                       bool master)
 {
        // get the *top* level paragraphs that contain the cursor,
@@ -115,6 +114,9 @@ static bool getContent(BufferView const * view, Buffer::OutputWhat output,
        view->buffer().getSourceCode(ostr, format, par_begin, par_end + 1,
                                     output, master);
        docstring s = ostr.str();
+       // FIXME THREAD
+       // Could this be private to this particular dialog? We could have
+       // more than one of these, in different windows.
        static size_t crc = 0;
        size_t newcrc = crcCheck(s);
        if (newcrc == crc && !force_getcontent)
@@ -228,13 +230,16 @@ void ViewSourceWidget::updateDefaultFormat()
 }
 
 
-void ViewSourceWidget::dockLocationChanged(Qt::DockWidgetArea area)
+void ViewSourceWidget::resizeEvent (QResizeEvent * event)
 {
-       if (area == Qt::RightDockWidgetArea || area == Qt::LeftDockWidgetArea) {
+       QSize const & formSize = formLayout->sizeHint();
+       // minimize the size of the part that contains the buttons
+       if (width() * formSize.height() < height() * formSize.width()) {
                layout_->setDirection(QBoxLayout::TopToBottom);
        } else {
                layout_->setDirection(QBoxLayout::LeftToRight);
        }
+       QWidget::resizeEvent(event);
 }
 
 
@@ -244,8 +249,6 @@ GuiViewSource::GuiViewSource(GuiView & parent,
 {
        widget_ = new ViewSourceWidget;
        setWidget(widget_);
-       connect(this, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)),
-               widget_, SLOT(dockLocationChanged(Qt::DockWidgetArea)));
 }