]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/qt_helpers.h
Fix the tab ordering of GuiDocument components.
[lyx.git] / src / frontends / qt4 / qt_helpers.h
index 6e5a2c6cb8f3e4d82258da599375b32c6983af51..d7a471ca069bce8c4d2b98585afe70c49ba0ce3e 100644 (file)
 
 #include "Length.h"
 #include "support/qstring_helpers.h"
-#include "support/strfwd.h"
 #include "qt_i18n.h"
 
+#include <QString>
+
 class QComboBox;
 class QLineEdit;
 class QCheckBox;
@@ -31,6 +32,8 @@ namespace lyx {
 
 namespace support { class FileName; }
 
+class BufferParams;
+
 namespace frontend {
 
 /// method to get a Length from widgets (LengthCombo)
@@ -45,9 +48,20 @@ Length const & len, Length::UNIT default_unit);
 /// method to set widgets from a string
 void lengthToWidgets(QLineEdit * input, LengthCombo * combo,
 std::string const & len, Length::UNIT default_unit);
-/// method to set widgets from a Length with optional "auto" if zero
-void lengthAutoToWidgets(QLineEdit * input, LengthCombo * combo,
-Length const & len, Length::UNIT defaultUnit);
+/// method to set widgets from a docstring
+void lengthToWidgets(QLineEdit * input, LengthCombo * combo,
+docstring const & len, Length::UNIT default_unit);
+
+/// method to get a double value from a localized widget (QLineEdit)
+double widgetToDouble(QLineEdit const * input);
+/// method to get a double value from a localized widget (QLineEdit)
+std::string widgetToDoubleStr(QLineEdit const * input);
+/// method to set a (localized) double value in a widget (QLineEdit)
+void doubleToWidget(QLineEdit * input, double const & value,
+       char f = 'g', int prec = 6);
+/// method to set a (localized) double value in a widget (QLineEdit)
+void doubleToWidget(QLineEdit * input, std::string const & value,
+       char f = 'g', int prec = 6);
 
 /// colors a widget red if invalid
 void setValid(QWidget * widget, bool valid);
@@ -63,24 +77,36 @@ void setValid(QWidget * widget, bool valid);
 QString const qt_(std::string const & str);
 
 ///
-typedef std::pair<QString, QString> LanguagePair;
-
-/** If the caller is the character dialog, add "No change" and "Reset"
-*  to the vector.
-*/
-QList<LanguagePair> languageData(bool character_dlg);
-
 support::FileName libFileSearch(QString const & dir, QString const & name,
                                QString const & ext = QString());
 
-/** Wrapper around browseFile which tries to provide a filename
-       relative to relpath.  If the relative path is of the form "foo.txt"
-       or "bar/foo.txt", then it is returned as relative. OTOH, if it is
-       of the form "../baz/foo.txt", an absolute path is returned. This is
-       intended to be useful for insets which encapsulate files/
+///
+support::FileName imageLibFileSearch(QString & dir, QString const & name,
+                                    QString const & ext = QString());
+
+/** Wrappers around browseFile which try to provide a filename
+       relative to relpath.
+
+\param title: title for dialog
+       
+\param filters: *.ps, etc
+
+\param save: whether to save dialog info (current path, etc) for next use.
+
+The \param labelN and \param dirN arguments provide for extra buttons 
+in the dialog (e.g., "Templates" and a path to that directory).
+
+The difference between the functions concerns when we think we have a 
+relative path. 
+
+In \c browseRelToParent, we return a relative path only if it IS NOT of 
+       the form "../../foo.txt".
+
+In \c browseRelToSub, we return a relative path only if it IS of the
+ form "../../foo.txt".
 */
-QString browseRelFile(QString const & filename,
-       QString const & refpath,
+QString browseRelToParent(QString const & filename,
+       QString const & relpath,
        QString const & title,
        QStringList const & filters,
        bool save = false,
@@ -89,6 +115,15 @@ QString browseRelFile(QString const & filename,
        QString const & label2 = QString(),
        QString const & dir2 = QString());
 
+QString browseRelToSub(QString const & filename,
+       QString const & relpath,
+       QString const & title,
+       QStringList const & filters,
+       bool save = false,
+       QString const & label1 = QString(),
+       QString const & dir1 = QString(),
+       QString const & label2 = QString(),
+       QString const & dir2 = QString());
 
 /** Build filelists of all availabe bst/cls/sty-files. Done through
 *  kpsewhich and an external script, saved in *Files.lst.
@@ -100,9 +135,15 @@ void rescanTexStyles();
  */
 QStringList texFileList(QString const & filename);
 
+/// Convert internal line endings to line endings as expected by the OS
+QString const externalLineEnding(docstring const & str);
+
+/// Convert line endings in any formnat to internal line endings
+docstring const internalLineEnding(QString const & str);
+
 // wrapper around the docstring versions
 QString internalPath(QString const &);
-QString onlyFilename(QString const & str);
+QString onlyFileName(QString const & str);
 QString onlyPath(QString const & str);
 QStringList fileFilters(QString const & description);
 
@@ -120,6 +161,12 @@ QString addExtension(QString const & name, QString const & extension);
 
 /// Return the extension of the file (not including the .)
 QString getExtension(QString const & name);
+QString makeAbsPath(QString const & relpath, QString const & base);
+QString changeExtension(QString const & oldname, QString const & ext);
+
+/// \return the display string associated with given type and buffer
+/// parameter.
+QString guiName(std::string const & type, BufferParams const & bp);
 
 } // namespace lyx