]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/qt_helpers.h
a few more docstring<->QString conversions
[lyx.git] / src / frontends / qt4 / qt_helpers.h
1 // -*- C++ -*-
2 /**
3  * \file qt_helpers.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author Dekel Tsur
8  * \author Richard Heck
9  *
10  * Full author contact details are available in file CREDITS.
11  */
12
13 #ifndef QTHELPERS_H
14 #define QTHELPERS_H
15
16 #include "Length.h"
17 #include "support/qstring_helpers.h"
18 #include "support/strfwd.h"
19
20 #include <vector>
21
22 class QComboBox;
23 class QLineEdit;
24 class QCheckBox;
25 class QString;
26 class QWidget;
27
28 class LengthCombo;
29
30 namespace lyx {
31
32 namespace support { class FileFilterList; }
33
34 namespace frontend {
35
36 /// method to get a Length from widgets (LengthCombo)
37 std::string widgetsToLength(QLineEdit const * input, LengthCombo const * combo);
38 /// method to get a Length from widgets (QComboBox)
39 Length widgetsToLength(QLineEdit const * input, QComboBox const * combo);
40
41 //FIXME It would be nice if defaultUnit were a default argument
42 /// method to set widgets from a Length
43 void lengthToWidgets(QLineEdit * input, LengthCombo * combo,
44 Length const & len, Length::UNIT default_unit);
45 /// method to set widgets from a string
46 void lengthToWidgets(QLineEdit * input, LengthCombo * combo,
47 std::string const & len, Length::UNIT default_unit);
48 /// method to set widgets from a Length with optional "auto" if zero
49 void lengthAutoToWidgets(QLineEdit * input, LengthCombo * combo,
50 Length const & len, Length::UNIT defaultUnit);
51
52 /// colors a widget red if invalid
53 void setValid(QWidget * widget, bool valid);
54
55 } // namespace frontend
56
57
58 /**
59 * qt_ - i18nize string and convert to QString
60  *
61  * Use this in qt4/ instead of _()
62  */
63 QString const qt_(char const * str, const char * comment = 0);
64
65
66 /**
67  * qt_ - i18nize string and convert to QString
68  *
69  * Use this in qt4/ instead of _()
70  */
71 QString const qt_(std::string const & str);
72
73 ///
74 typedef std::pair<docstring, std::string> LanguagePair;
75
76 /** If the caller is the character dialog, add "No change" and "Reset"
77 *  to the vector.
78 */
79 std::vector<LanguagePair> const getLanguageData(bool character_dlg);
80
81 /** Wrapper around browseFile which tries to provide a filename
82         relative to relpath.  If the relative path is of the form "foo.txt"
83         or "bar/foo.txt", then it is returned as relative. OTOH, if it is
84         of the form "../baz/foo.txt", an absolute path is returned. This is
85         intended to be useful for insets which encapsulate files/
86 */
87 docstring browseRelFile(docstring const & filename,
88         docstring const & refpath,
89         docstring const & title,
90         support::FileFilterList const & filters,
91         bool save = false,
92         docstring const & label1 = docstring(),
93         docstring const & dir1 = docstring(),
94         docstring const & label2 = docstring(),
95         docstring const & dir2 = docstring());
96
97
98 /** Build filelists of all availabe bst/cls/sty-files. Done through
99 *  kpsewhich and an external script, saved in *Files.lst.
100 */
101 void rescanTexStyles();
102
103 /** Fill \c contents from one of the three texfiles.
104  *  Each entry in the file list is returned as a name_with_path
105  */
106 void getTexFileList(std::string const & filename, std::vector<std::string> & contents);
107
108 // wrapper around the docstring versions
109 QString internalPath(const QString &);
110 QString onlyFilename(const QString & str);
111 QString onlyPath(const QString & str);
112
113 } // namespace lyx
114
115 #endif // QTHELPERS_H