]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/qt_helpers.h
* fix spelling in comments to please John.
[lyx.git] / src / frontends / qt4 / qt_helpers.h
index 21b011e3e70c00ed5e30385a046315af398de32f..dd284a8655099af9de1b77028d41ad0993e43911 100644 (file)
@@ -5,6 +5,7 @@
  * Licence details can be found in the file COPYING.
  *
  * \author Dekel Tsur
+ * \author Richard Heck
  *
  * Full author contact details are available in file CREDITS.
  */
 #ifndef QTHELPERS_H
 #define QTHELPERS_H
 
-#include <utility>
+#include "Length.h"
+#include "support/qstring_helpers.h"
+#include "qt_i18n.h"
 
-#include "lyxlength.h"
-//#include "lengthcombo.h"
+#include <QString>
 
-#include "support/docstring.h"
-
-#include <QChar>
-
-#include <vector>
-
-class LengthCombo;
 class QComboBox;
 class QLineEdit;
+class QCheckBox;
 class QString;
+class QWidget;
+template <class T> class QList;
+
+class LengthCombo;
+
+namespace lyx {
+
+namespace support { class FileName; }
 
-std::string makeFontName(std::string const & family, std::string const & foundry);
+class BufferParams;
 
-std::pair<std::string,std::string> parseFontName(std::string const & name);
+namespace frontend {
 
-/// method to get a LyXLength from widgets (LengthCombo)
+/// method to get a Length from widgets (LengthCombo)
 std::string widgetsToLength(QLineEdit const * input, LengthCombo const * combo);
-/// method to get a LyXLength from widgets (QComboBox)
-LyXLength widgetsToLength(QLineEdit const * input, QComboBox const * combo);
+/// method to get a Length from widgets (QComboBox)
+Length widgetsToLength(QLineEdit const * input, QComboBox const * combo);
 
-/// method to set widgets from a LyXLength
+//FIXME It would be nice if defaultUnit were a default argument
+/// method to set widgets from a Length
 void lengthToWidgets(QLineEdit * input, LengthCombo * combo,
-       std::string const & len, LyXLength::UNIT default_unit);
+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 docstring
+void lengthToWidgets(QLineEdit * input, LengthCombo * combo,
+docstring const & len, Length::UNIT default_unit);
 
-/// format a string to the given width
-lyx::docstring const formatted(lyx::docstring const & text, int w = 80);
+/// 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);
 
-/**
- * toqstr - convert char * into unicode
- *
- * Use this whenever there's a user-visible string that is encoded
- * for the locale (menus, dialogs etc.)
- */
-QString const toqstr(char const * str);
+/// colors a widget red if invalid
+void setValid(QWidget * widget, bool valid);
 
-
-/**
- * toqstr - convert string into unicode
- *
- * Use this whenever there's a user-visible string that is encoded
- * for the locale (menus, dialogs etc.)
- */
-QString const toqstr(std::string const & str);
+} // namespace frontend
 
 
 /**
- * toqstr - convert ucs4 into QString
+ * qt_ - i18nize string and convert to QString
  *
- * QString uses ucs2 (a.k.a utf16) internally.
+ * Use this in qt4/ instead of _()
  */
-QString const toqstr(lyx::docstring const & ucs4);
+QString const qt_(std::string const & str);
 
-void ucs4_to_qstring(lyx::char_type const * str, size_t ls, QString & s);
+///
+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/
+*/
+QString browseRelFile(QString const & filename,
+       QString const & refpath,
+       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.
+*/
+void rescanTexStyles();
+
+/** Fill \c contents from one of the three texfiles.
+ *  Each entry in the file list is returned as a name_with_path
+ */
+QStringList texFileList(QString const & filename);
 
-void ucs4_to_qstring(lyx::docstring const & str, QString & s);
+/// Convert internal line endings to line endings as expected by the OS
+QString const externalLineEnding(docstring const & str);
 
-lyx::docstring const qstring_to_ucs4(QString const & qstr);
+/// Convert line endings in any formnat to internal line endings
+docstring const internalLineEnding(QString const & str);
 
-void qstring_to_ucs4(QString const & qstr, std::vector<lyx::char_type> & ucs4);
+// wrapper around the docstring versions
+QString internalPath(QString const &);
+QString onlyFilename(QString const & str);
+QString onlyPath(QString const & str);
+QStringList fileFilters(QString const & description);
 
-inline lyx::char_type const qchar_to_ucs4(QChar const & qchar) {
-       return static_cast<lyx::char_type>(qchar.unicode());
-}
+QString changeExtension(QString const & oldname, QString const & extension);
 
-inline QChar const ucs4_to_qchar(lyx::char_type const ucs4) {
-       return QChar(static_cast<unsigned short>(ucs4));
-}
+/// Remove the extension from \p name
+QString removeExtension(QString const & name);
 
-/**
- * qt_ - i18nize string and convert to unicode
- *
- * Use this in qt4/ instead of qt_()
+/** Add the extension \p ext to \p name.
+ Use this instead of changeExtension if you know that \p name is without
+ extension, because changeExtension would wrongly interpret \p name if it
+ contains a dot.
  */
-QString const qt_(char const * str);
-
+QString addExtension(QString const & name, QString const & extension);
 
-/**
- * qt_ - i18nize string and convert to unicode
- *
- * Use this in qt4/ instead of qt_()
- */
-QString const qt_(std::string const & str);
+/// 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);
 
-/**
- * fromqstr - convert QString into std::string in locale
- *
- * Return the QString encoded in the locale
- */
-std::string const fromqstr(QString const & str);
+} // namespace lyx
 
 #endif // QTHELPERS_H