#include "GuiView.h"
#include "Menus.h"
#include "qt_helpers.h"
-#include "ToolbarBackend.h"
+#include "Toolbars.h"
#include "frontends/alert.h"
#include "frontends/Application.h"
using namespace std;
using namespace lyx::support;
-// FIXME: These strings are also used in GuiClipboard.cpp.
-static char const * const lyx_mime_type = "application/x-lyx";
-static char const * const pdf_mime_type = "application/pdf";
-static char const * const emf_mime_type = "image/x-emf";
-static char const * const wmf_mime_type = "image/x-wmf";
namespace lyx {
return new frontend::GuiApplication(argc, argv);
}
-
namespace frontend {
class SocketNotifier : public QSocketNotifier
QString flavorFor(QString const & mime)
{
LYXERR(Debug::ACTION, "flavorFor " << mime);
- if (mime == QLatin1String(pdf_mime_type))
+ if (mime == pdfMimeType())
return QLatin1String("com.adobe.pdf");
return QString();
}
{
LYXERR(Debug::ACTION, "mimeFor " << flav);
if (flav == QLatin1String("com.adobe.pdf"))
- return QLatin1String(pdf_mime_type);
+ return pdfMimeType();
return QString();
}
static FORMATETC cfFromMime(QString const & mimetype)
{
FORMATETC formatetc;
- if (mimetype == emf_mime_type) {
+ if (mimetype == emfMimeType()) {
formatetc.cfFormat = CF_ENHMETAFILE;
formatetc.tymed = TYMED_ENHMF;
- } else if (mimetype == wmf_mime_type) {
+ } else if (mimetype == wmfMimeType()) {
formatetc.cfFormat = CF_METAFILEPICT;
formatetc.tymed = TYMED_MFPICT;
}
bool canConvertToMime(QString const & mimetype,
IDataObject * pDataObj) const
{
- if (mimetype != emf_mime_type && mimetype != wmf_mime_type)
+ if (mimetype != emfMimeType() && mimetype != wmfMimeType())
return false;
FORMATETC formatetc = cfFromMime(mimetype);
return pDataObj->QueryGetData(&formatetc) == S_OK;
{
switch (formatetc.cfFormat) {
case CF_ENHMETAFILE:
- return emf_mime_type;
+ return emfMimeType();
case CF_METAFILEPICT:
- return wmf_mime_type;
+ return wmfMimeType();
}
return QString();
}
QHash<int, SocketNotifier *> socket_notifiers_;
///
Menus menus_;
+ ///
+ /// The global instance
+ Toolbars toolbars_;
+
/// this timer is used for any regular events one wants to
/// perform. at present it is used to check if forked processes
/// are done.
}
+Toolbars const & GuiApplication::toolbars() const
+{
+ return d->toolbars_;
+}
+
+
+Toolbars & GuiApplication::toolbars()
+{
+ return d->toolbars_;
+}
+
+
Menus const & GuiApplication::menus() const
{
return d->menus_;
void GuiApplication::execBatchCommands()
{
// Read menus
- if (!readUIFile(lyxrc.ui_file))
+ if (!readUIFile(toqstr(lyxrc.ui_file)))
// Gives some error box here.
return;
bool GuiApplication::searchMenu(FuncRequest const & func,
- vector<docstring> & names) const
+ docstring_list & names) const
{
- return menus().searchMenu(func, names);
+ return d->menus_.searchMenu(func, names);
}
-bool GuiApplication::readUIFile(string const & name, bool include)
+bool GuiApplication::readUIFile(QString const & name, bool include)
{
enum {
ui_menuset = 1,
};
// Ensure that a file is read only once (prevents include loops)
- static list<string> uifiles;
- list<string>::const_iterator it = uifiles.begin();
- list<string>::const_iterator end = uifiles.end();
- it = find(it, end, name);
- if (it != end) {
+ static QStringList uifiles;
+ if (uifiles.contains(name)) {
LYXERR(Debug::INIT, "UI file '" << name << "' has been read already. "
<< "Is this an include loop?");
return false;
LYXERR(Debug::INIT, "About to read " << name << "...");
-
FileName ui_path;
if (include) {
- ui_path = libFileSearch("ui", toqstr(name), "inc");
+ ui_path = libFileSearch("ui", name, "inc");
if (ui_path.empty())
- ui_path = libFileSearch("ui",
- changeExtension(toqstr(name), "inc"));
+ ui_path = libFileSearch("ui", changeExtension(name, "inc"));
+ } else {
+ ui_path = libFileSearch("ui", name, "ui");
}
- else
- ui_path = libFileSearch("ui", toqstr(name), "ui");
if (ui_path.empty()) {
LYXERR(Debug::INIT, "Could not find " << name);
Alert::warning(_("Could not find UI defintion file"),
bformat(_("Error while reading the configuration file\n%1$s.\n"
- "Please check your installation."), from_utf8(name)));
+ "Please check your installation."), qstring_to_ucs4(name)));
return false;
}
switch (lex.lex()) {
case ui_include: {
lex.next(true);
- string const file = lex.getString();
+ QString const file = toqstr(lex.getString());
if (!readUIFile(file, true))
return false;
break;
break;
case ui_toolbarset:
- toolbarbackend.readToolbars(lex);
+ d->toolbars_.readToolbars(lex);
break;
case ui_toolbars:
- toolbarbackend.readToolbarSettings(lex);
+ d->toolbars_.readToolbarSettings(lex);
break;
default: