2006-03-05 17:24:44 +00:00
|
|
|
// -*- C++ -*-
|
|
|
|
/**
|
|
|
|
* \file qt_helpers.h
|
|
|
|
* This file is part of LyX, the document processor.
|
|
|
|
* Licence details can be found in the file COPYING.
|
|
|
|
*
|
|
|
|
* \author Dekel Tsur
|
|
|
|
*
|
|
|
|
* Full author contact details are available in file CREDITS.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef QTHELPERS_H
|
|
|
|
#define QTHELPERS_H
|
|
|
|
|
|
|
|
#include "lyxlength.h"
|
2006-09-13 21:13:49 +00:00
|
|
|
#include "support/docstring.h"
|
2006-08-30 14:59:07 +00:00
|
|
|
|
2006-10-07 16:30:26 +00:00
|
|
|
#include <QChar>
|
2006-10-22 19:33:37 +00:00
|
|
|
#include <QString>
|
2006-10-07 16:30:26 +00:00
|
|
|
|
2006-08-30 14:59:07 +00:00
|
|
|
#include <vector>
|
2006-10-21 00:16:43 +00:00
|
|
|
#include <utility>
|
2006-08-30 14:59:07 +00:00
|
|
|
|
2006-03-05 17:24:44 +00:00
|
|
|
class QComboBox;
|
|
|
|
class QLineEdit;
|
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
class LengthCombo;
|
|
|
|
|
|
|
|
namespace lyx {
|
|
|
|
|
2006-03-05 17:24:44 +00:00
|
|
|
std::string makeFontName(std::string const & family, std::string const & foundry);
|
|
|
|
|
|
|
|
std::pair<std::string,std::string> parseFontName(std::string const & name);
|
|
|
|
|
|
|
|
/// method to get a LyXLength 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 set widgets from a LyXLength
|
|
|
|
void lengthToWidgets(QLineEdit * input, LengthCombo * combo,
|
|
|
|
std::string const & len, LyXLength::UNIT default_unit);
|
|
|
|
|
|
|
|
/// format a string to the given width
|
2006-10-21 00:16:43 +00:00
|
|
|
docstring const formatted(docstring const & text, int w = 80);
|
2006-03-05 17:24:44 +00:00
|
|
|
|
|
|
|
/**
|
2006-10-22 19:33:37 +00:00
|
|
|
* toqstr - convert char * into Qt's unicode (UTF16)
|
2006-03-05 17:24:44 +00:00
|
|
|
*
|
|
|
|
* Use this whenever there's a user-visible string that is encoded
|
|
|
|
* for the locale (menus, dialogs etc.)
|
|
|
|
*/
|
2006-10-22 19:33:37 +00:00
|
|
|
inline QString const toqstr(char const * str)
|
|
|
|
{
|
|
|
|
return QString::fromUtf8(str);
|
|
|
|
}
|
2006-03-05 17:24:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* toqstr - convert string into unicode
|
|
|
|
*
|
|
|
|
* Use this whenever there's a user-visible string that is encoded
|
|
|
|
* for the locale (menus, dialogs etc.)
|
|
|
|
*/
|
2006-10-22 19:33:37 +00:00
|
|
|
inline QString const toqstr(std::string const & str)
|
|
|
|
{
|
|
|
|
return toqstr(str.c_str());
|
|
|
|
}
|
2006-03-05 17:24:44 +00:00
|
|
|
|
|
|
|
|
2006-08-30 14:59:07 +00:00
|
|
|
/**
|
|
|
|
* toqstr - convert ucs4 into QString
|
|
|
|
*
|
2006-10-21 00:16:43 +00:00
|
|
|
* QString uses utf16 internally.
|
2006-08-30 14:59:07 +00:00
|
|
|
*/
|
2006-10-22 19:33:37 +00:00
|
|
|
inline char_type const qchar_to_ucs4(QChar const & qchar) {
|
|
|
|
return static_cast<char_type>(qchar.unicode());
|
|
|
|
}
|
2006-08-30 14:59:07 +00:00
|
|
|
|
2006-10-22 19:33:37 +00:00
|
|
|
inline QChar const ucs4_to_qchar(char_type const ucs4) {
|
|
|
|
return QChar(static_cast<unsigned short>(ucs4));
|
|
|
|
}
|
|
|
|
|
|
|
|
QString const toqstr(docstring const & ucs4);
|
2006-08-30 14:59:07 +00:00
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
void ucs4_to_qstring(docstring const & str, QString & s);
|
2006-10-09 12:07:05 +00:00
|
|
|
|
2006-10-22 19:33:37 +00:00
|
|
|
inline void ucs4_to_qstring(char_type const * str, size_t ls, QString & s)
|
|
|
|
{
|
|
|
|
s.resize(ls);
|
|
|
|
for (int i = ls; --i >= 0; )
|
|
|
|
s[i] = ucs4_to_qchar(str[i]);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
QString ucs4_to_qstring(docstring const & str);
|
2006-10-20 19:26:23 +00:00
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
docstring const qstring_to_ucs4(QString const & qstr);
|
2006-08-30 14:59:07 +00:00
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
void qstring_to_ucs4(QString const & qstr, std::vector<char_type> & ucs4);
|
2006-08-30 14:59:07 +00:00
|
|
|
|
2006-03-05 17:24:44 +00:00
|
|
|
/**
|
|
|
|
* qt_ - i18nize string and convert to unicode
|
|
|
|
*
|
2006-04-24 13:25:50 +00:00
|
|
|
* Use this in qt4/ instead of qt_()
|
2006-03-05 17:24:44 +00:00
|
|
|
*/
|
|
|
|
QString const qt_(char const * str);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* qt_ - i18nize string and convert to unicode
|
|
|
|
*
|
2006-04-24 13:25:50 +00:00
|
|
|
* Use this in qt4/ instead of qt_()
|
2006-03-05 17:24:44 +00:00
|
|
|
*/
|
|
|
|
QString const qt_(std::string const & str);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* fromqstr - convert QString into std::string in locale
|
|
|
|
*
|
|
|
|
* Return the QString encoded in the locale
|
|
|
|
*/
|
|
|
|
std::string const fromqstr(QString const & str);
|
|
|
|
|
2006-10-21 00:16:43 +00:00
|
|
|
|
|
|
|
} // namespace lyx
|
|
|
|
|
2006-03-05 17:24:44 +00:00
|
|
|
#endif // QTHELPERS_H
|