]> git.lyx.org Git - features.git/commitdiff
Better title for ViewSource
authorGuillaume Munch <gm@lyx.org>
Sun, 28 Aug 2016 20:57:17 +0000 (21:57 +0100)
committerGuillaume Munch <gm@lyx.org>
Sat, 22 Oct 2016 18:07:42 +0000 (20:07 +0200)
The title is changed to "LaTeX (pdflatex) Preview", etc. depending on the
format. The actual default format is computed.

The menu name "Source Pane" is replaced by "Code Preview Pane" to better reflect
its purpose.

(cherry-picked from ca58674267b2c050b3b53402c9414b6bd697dc0a)

lib/ui/stdmenus.inc
src/Format.cpp
src/frontends/qt4/GuiViewSource.cpp
src/frontends/qt4/GuiViewSource.h

index 62ed8e2776b752c31d2b7774173780def3941ecb..87c78edf43075af9c9c9afbd5aeeecac553060cd 100644 (file)
@@ -336,7 +336,7 @@ Menuset
                Item "Fold Math Macro|d" "math-macro-fold"
                Separator
                Item "Outline Pane|u" "dialog-toggle toc"
-               Item "Source Pane|S" "dialog-toggle view-source"
+               Item "Code Preview Pane|P" "dialog-toggle view-source"
                Item "Messages Pane|g" "dialog-toggle progress"
                Submenu "Toolbars|b" "toolbars"
                Separator
index eba00b95dfd3190a69eceac619c2d1cb93a9afd3..cedbf7a2aea4acb90038f9d627ab4a753c15db8e 100644 (file)
@@ -839,6 +839,7 @@ FlavorTranslator initFlavorTranslator()
        f.addPair(OutputParams::XML, "docbook-xml");
        f.addPair(OutputParams::HTML, "xhtml");
        f.addPair(OutputParams::TEXT, "text");
+       f.addPair(OutputParams::LYX, "lyx");
        return f;
 }
 
index d5838976a9fd013b9e0b71e80ac4740866d66f93..5a6a9664ff5e070425d6c575639cea2aafd3535b 100644 (file)
@@ -148,7 +148,12 @@ void ViewSourceWidget::contentsChanged()
 void ViewSourceWidget::setViewFormat(int const index)
 {
        outputFormatCO->setCurrentIndex(index);
-       view_format_ = outputFormatCO->itemData(index).toString();
+       string format = fromqstr(outputFormatCO->itemData(index).toString());
+       if (view_format_ != format) {
+               view_format_ = format;
+               // emit signal
+               formatChanged();
+       }
 }
 
 
@@ -184,8 +189,6 @@ void ViewSourceWidget::realUpdateView()
        // we will try to preserve this
        int const h_scroll = viewSourceTV->horizontalScrollBar()->value();
 
-       string const format = fromqstr(view_format_);
-
        Buffer::OutputWhat output = Buffer::CurrentParagraph;
        if (contentsCO->currentIndex() == 1)
                output = Buffer::FullSource;
@@ -195,7 +198,8 @@ void ViewSourceWidget::realUpdateView()
                output = Buffer::OnlyBody;
 
        docstring content;
-       getContent(bv_, output, content, format, masterPerspectiveCB->isChecked());
+       getContent(bv_, output, content, view_format_,
+                  masterPerspectiveCB->isChecked());
        QString old = document_->toPlainText();
        QString qcontent = toqstr(content);
 #ifdef DEVEL_VERSION
@@ -305,6 +309,16 @@ void ViewSourceWidget::realUpdateView()
 }
 
 
+docstring ViewSourceWidget::currentFormatName() const
+{
+       // Compute the actual format used
+       string const format = !bv_ ? ""
+               : flavor2format(bv_->buffer().params().getOutputFlavor(view_format_));
+       Format const * f = formats.getFormat(format.empty() ? view_format_ : format);
+       return from_utf8(f ? f->prettyname() : view_format_);
+}
+
+
 // only used in DEVEL_MODE for debugging
 // need a proper LFUN if we want to implement it in release mode
 void ViewSourceWidget::gotoCursor()
@@ -340,9 +354,8 @@ void ViewSourceWidget::updateDefaultFormat()
                } 
 
                QString const pretty = qt_(fmt->prettyname());
-               QString const qformat = toqstr(format);
-               outputFormatCO->addItem(pretty, QVariant(qformat));
-               if (qformat == view_format_)
+               outputFormatCO->addItem(pretty, QVariant(toqstr(format)));
+               if (format == view_format_)
                   index = outputFormatCO->count() -1;
        }
        setViewFormat(index);
@@ -366,7 +379,7 @@ void ViewSourceWidget::resizeEvent (QResizeEvent * event)
 void ViewSourceWidget::saveSession(QString const & session_key) const
 {
        QSettings settings;
-       settings.setValue(session_key + "/output", view_format_);
+       settings.setValue(session_key + "/output", toqstr(view_format_));
        settings.setValue(session_key + "/contents", contentsCO->currentIndex());
        settings.setValue(session_key + "/autoupdate", autoUpdateCB->isChecked());
        settings.setValue(session_key + "/masterview",
@@ -377,7 +390,8 @@ void ViewSourceWidget::saveSession(QString const & session_key) const
 void ViewSourceWidget::restoreSession(QString const & session_key)
 {
        QSettings settings;
-    view_format_ = settings.value(session_key + "/output", 0).toString();
+       view_format_ = fromqstr(settings.value(session_key + "/output", 0)
+                               .toString());
        contentsCO->setCurrentIndex(settings
                                                                .value(session_key + "/contents", 0)
                                                                .toInt());
@@ -395,10 +409,11 @@ void ViewSourceWidget::restoreSession(QString const & session_key)
 
 GuiViewSource::GuiViewSource(GuiView & parent,
                Qt::DockWidgetArea area, Qt::WindowFlags flags)
-       : DockView(parent, "view-source", qt_("LaTeX Source"), area, flags)
+       : DockView(parent, "view-source", qt_("Code Preview"), area, flags)
 {
        widget_ = new ViewSourceWidget;
        setWidget(widget_);
+       connect(widget_, SIGNAL(formatChanged()), this, SLOT(updateTitle()));
 }
 
 
@@ -415,6 +430,7 @@ void GuiViewSource::updateView()
                widget_->updateView();
        }
        widget_->masterPerspectiveCB->setEnabled(buffer().parent());
+       updateTitle();
 }
 
 
@@ -430,24 +446,19 @@ void GuiViewSource::enableView(bool enable)
 
 bool GuiViewSource::initialiseParams(string const & /*source*/)
 {
-       setWindowTitle(title());
+       updateTitle();
        return true;
 }
 
 
-QString GuiViewSource::title() const
+void GuiViewSource::updateTitle()
 {
-       switch (docType()) {
-               case LATEX:
-                       //FIXME: this is shown for LyXHTML source, LyX source, etc.
-                       return qt_("LaTeX Source");
-               case DOCBOOK:
-                       return qt_("DocBook Source");
-               case LITERATE:
-                       return qt_("Literate Source");
-       }
-       LATTEST(false);
-       return QString();
+       docstring const format = widget_->currentFormatName();
+       QString const title = format.empty() ? qt_("Code Preview")
+               : qt_("%1[[preview format name]] Preview")
+                 .arg(toqstr(translateIfPossible(format)));
+       setTitle(title);
+       setWindowTitle(title);
 }
 
 
index e089305be58fabb1985616ff6485b293ecd398f1..b90c514ce37bfd141809d4de1c6d98a41d63b51e 100644 (file)
@@ -64,6 +64,11 @@ public Q_SLOTS:
        void contentsChanged();
        ///
        void gotoCursor();
+       /// Name of the current format. Empty if none.
+       docstring currentFormatName() const;
+
+Q_SIGNALS:
+       void formatChanged() const;
 
 private Q_SLOTS:
        /// update content
@@ -80,7 +85,7 @@ private:
        /// LaTeX syntax highlighter
        LaTeXHighlighter * highlighter_;
        ///
-       QString view_format_;
+       std::string view_format_;
        ///
        QTimer * update_timer_;
        /// TexRow information from the last source view. If TexRow is unavailable
@@ -116,8 +121,9 @@ public:
        bool wantInitialFocus() const { return false; }
        ///@}
 
+private Q_SLOTS:
        /// The title displayed by the dialog reflects source type.
-       QString title() const;
+       void updateTitle();
 
 private:
        /// The encapsulated widget.