#include "support/debug.h"
#include "support/ExceptionMessage.h"
#include "support/FileName.h"
+#include "support/foreach.h"
#include "support/ForkedCalls.h"
#include "support/gettext.h"
#include "support/lstrings.h"
#include <QClipboard>
#include <QEventLoop>
#include <QFileOpenEvent>
+#include <QHash>
#include <QLocale>
#include <QLibraryInfo>
#include <QMacPasteboardMime>
#endif
#ifdef Q_WS_WIN
-#include <QVector>
+#include <QList>
#include <QWindowsMime>
#if defined(Q_CYGWIN_WIN) || defined(Q_CC_MINGW)
#include <wtypes.h>
#include <boost/bind.hpp>
#include <exception>
-#include <map>
using namespace std;
using namespace lyx::support;
struct GuiApplication::Private
{
- Private(): language_model_(0), global_menubar_(0)
+ Private()
+ : language_model_(0), global_menubar_(0)
{
#ifdef Q_WS_MACX
// Create the global default menubar which is shown for the dialogs
///
QTranslator qt_trans_;
///
- std::map<int, SocketNotifier *> socket_notifiers_;
+ QHash<int, SocketNotifier *> socket_notifiers_;
///
Menus menus_;
/// this timer is used for any regular events one wants to
* object is handled by Qt when the view is closed
* \sa Qt::WA_DeleteOnClose attribute.
*/
- map<int, GuiView *> views_;
+ QHash<int, GuiView *> views_;
/// Only used on mac.
GlobalMenuBar * global_menubar_;
bool GuiApplication::dispatch(FuncRequest const & cmd)
{
- switch(cmd.action) {
+ switch (cmd.action) {
case LFUN_WINDOW_NEW:
createView(toqstr(cmd.argument()));
current_view_->newDocument(to_utf8(cmd.argument()), false);
current_view_->show();
setActiveWindow(current_view_);
- } else
+ } else {
current_view_->newDocument(to_utf8(cmd.argument()), false);
+ }
break;
case LFUN_BUFFER_NEW_TEMPLATE:
current_view_->newDocument(to_utf8(cmd.argument()), true);
if (!current_view_->buffer())
current_view_->close();
- } else
+ } else {
current_view_->newDocument(to_utf8(cmd.argument()), true);
+ }
break;
case LFUN_FILE_OPEN:
void GuiApplication::resetGui()
{
- map<int, GuiView *>::iterator it;
+ QHash<int, GuiView *>::iterator it;
for (it = d->views_.begin(); it != d->views_.end(); ++it)
- it->second->resetDialogs();
+ (*it)->resetDialogs();
dispatch(FuncRequest(LFUN_SCREEN_FONT_UPDATE));
}
}
-QVector<int> GuiApplication::viewIds()
+QList<int> GuiApplication::viewIds() const
{
- QVector<int> ids;
- map<int, GuiView *>::const_iterator end = d->views_.end();
- map<int, GuiView *>::const_iterator it = d->views_.begin();
- for (; it != end; ++it)
- ids.push_back(it->first);
- return ids;
+ return d->views_.keys();
}
void GuiApplication::unregisterSocketCallback(int fd)
{
- d->socket_notifiers_[fd]->setEnabled(false);
- d->socket_notifiers_.erase(fd);
+ d->socket_notifiers_.take(fd)->setEnabled(false);
}
void GuiApplication::unregisterView(GuiView * gv)
{
LASSERT(d->views_[gv->id()] == gv, /**/);
- d->views_.erase(gv->id());
+ d->views_.remove(gv->id());
if (current_view_ == gv) {
current_view_ = 0;
theLyXFunc().setLyXView(0);
if (d->views_.empty())
return true;
- map<int, GuiView*> const cmap = d->views_;
- map<int, GuiView*>::const_iterator it;
- for (it = cmap.begin(); it != cmap.end(); ++it) {
- if (!it->second->close())
+ QList<GuiView *> views = d->views_.values();
+ foreach (GuiView * view, views) {
+ if (!view->close())
return false;
}
GuiView & GuiApplication::view(int id) const
{
- LASSERT(d->views_.find(id) != d->views_.end(), /**/);
- return *d->views_.find(id)->second;
+ LASSERT(d->views_.contains(id), /**/);
+ return *d->views_.value(id);
}
void GuiApplication::hideDialogs(string const & name, Inset * inset) const
{
- map<int, GuiView *>::iterator end = d->views_.end();
- for (map<int, GuiView *>::iterator it = d->views_.begin(); it != end; ++it)
- it->second->hideDialog(name, inset);
+ QList<GuiView *> views = d->views_.values();
+ foreach (GuiView * view, views)
+ view->hideDialog(name, inset);
}
Buffer const * GuiApplication::updateInset(Inset const * inset) const
{
Buffer const * buffer_ = 0;
- map<int, GuiView *>::iterator end = d->views_.end();
- for (map<int, GuiView *>::iterator it = d->views_.begin(); it != end; ++it) {
- if (Buffer const * ptr = it->second->updateInset(inset))
+ QHash<int, GuiView *>::iterator end = d->views_.end();
+ for (QHash<int, GuiView *>::iterator it = d->views_.begin(); it != end; ++it) {
+ if (Buffer const * ptr = (*it)->updateInset(inset))
buffer_ = ptr;
}
return buffer_;