Even though those compiled flawlessly, lupdate complains about circular includes, so avoid
them. Requires un-inlining of some methods, unfortunately. On the upside, we now have a clearly
defined order for deleting gui-related objects on quit :)
}
+ChatLine *ChatItem::chatLine() const {
+ return _parent;
+}
+
+ChatScene *ChatItem::chatScene() const {
+ return chatLine()->chatScene();
+}
+
+const QAbstractItemModel *ChatItem::model() const {
+ return chatLine()->model();
+}
+
+int ChatItem::row() const {
+ return chatLine()->row();
+}
+
+QPointF ChatItem::mapToLine(const QPointF &p) const {
+ return p + pos();
+}
+
+QPointF ChatItem::mapFromLine(const QPointF &p) const {
+ return p - pos();
+}
+
+// relative to the ChatLine
+QPointF ChatItem::mapToScene(const QPointF &p) const {
+ return chatLine()->mapToScene(p /* + pos() */);
+}
+
+QPointF ChatItem::mapFromScene(const QPointF &p) const {
+ return chatLine()->mapFromScene(p) /* - pos() */;
+}
+
QVariant ChatItem::data(int role) const {
QModelIndex index = model()->index(row(), column());
if(!index.isValid()) {
virtual ~ChatItem() {}
public:
- inline const QAbstractItemModel *model() const;
- inline ChatLine *chatLine() const;
- inline ChatScene *chatScene() const;
- inline int row() const;
+ const QAbstractItemModel *model() const;
+ ChatLine *chatLine() const;
+ ChatScene *chatScene() const;
+ int row() const;
virtual ChatLineModel::ColumnType column() const = 0;
// The boundingRect() is relative to the parent ChatLine
inline qreal x() const;
inline qreal y() const;
- inline QPointF mapToLine(const QPointF &) const;
- inline QPointF mapFromLine(const QPointF &) const;
- inline QPointF mapToScene(const QPointF &) const;
- inline QPointF mapFromScene(const QPointF &) const;
+ QPointF mapToLine(const QPointF &) const;
+ QPointF mapFromLine(const QPointF &) const;
+ QPointF mapToScene(const QPointF &) const;
+ QPointF mapFromScene(const QPointF &) const;
void initLayoutHelper(QTextLayout *layout, QTextOption::WrapMode, Qt::Alignment = Qt::AlignLeft) const;
virtual inline void initLayout(QTextLayout *layout) const {
/*************************************************************************************************/
-#include "chatline.h" /* avoid circular includes */
-
// Inlines
-ChatLine *ChatItem::chatLine() const { return _parent; }
-ChatScene *ChatItem::chatScene() const { return chatLine()->chatScene(); }
-const QAbstractItemModel *ChatItem::model() const { return chatLine()->model(); }
-int ChatItem::row() const { return chatLine()->row(); }
-
QRectF ChatItem::boundingRect() const { return _boundingRect; }
qreal ChatItem::width() const { return _boundingRect.width(); }
qreal ChatItem::height() const { return _boundingRect.height(); }
qreal ChatItem::x() const { return pos().x(); }
qreal ChatItem::y() const { return pos().y(); }
-QPointF ChatItem::mapToLine(const QPointF &p) const { return p + pos(); }
-QPointF ChatItem::mapFromLine(const QPointF &p) const { return p - pos(); }
-// relative to the ChatLine
-QPointF ChatItem::mapToScene(const QPointF &p) const { return chatLine()->mapToScene(p /* + pos() */); }
-QPointF ChatItem::mapFromScene(const QPointF &p) const { return chatLine()->mapFromScene(p) /* - pos() */; }
-
#endif
#include "columnhandleitem.h"
#include "contextmenuactionprovider.h"
#include "iconloader.h"
+#include "mainwin.h"
#include "messagefilter.h"
#include "qtui.h"
#include "qtuistyle.h"
#include "client.h"
#include "icon.h"
#include "iconloader.h"
+#include "mainwin.h"
#include "networkmodel.h"
#include "qtui.h"
_awayLog(0),
_layoutLoaded(false)
{
+ setAttribute(Qt::WA_DeleteOnClose, false); // we delete the mainwin manually
+
QtUiSettings uiSettings;
QString style = uiSettings.value("Style", QString()).toString();
if(!style.isEmpty()) {
/***************************************************************************
- * Copyright (C) 2005-09 by the Quassel Project *
+ * Copyright (C) 2005-2010 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
# include <QX11Info>
#endif
-QPointer<QtUi> QtUi::_instance = 0;
-QPointer<MainWin> QtUi::_mainWin = 0;
+QtUi *QtUi::_instance = 0;
+MainWin *QtUi::_mainWin = 0;
QList<AbstractNotificationBackend *> QtUi::_notificationBackends;
QList<AbstractNotificationBackend::Notification> QtUi::_notifications;
QtUi::~QtUi() {
unregisterAllNotificationBackends();
delete _mainWin;
+ _mainWin = 0;
+ _instance = 0;
}
void QtUi::init() {
/***************************************************************************
- * Copyright (C) 2005-09 by the Quassel Project *
+ * Copyright (C) 2005-2010 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "graphicalui.h"
#include "abstractnotificationbackend.h"
-#include "mainwin.h"
#include "qtuistyle.h"
class MainWin;
void useSystemTrayChanged(const QVariant &);
private:
- static QPointer<QtUi> _instance;
- static QPointer<MainWin> _mainWin;
+ static QtUi *_instance;
+ static MainWin *_mainWin;
static QList<AbstractNotificationBackend *> _notificationBackends;
static QList<AbstractNotificationBackend::Notification> _notifications;
bool _useSystemTray;
};
-QtUi *QtUi::instance() { return _instance ? _instance.data() : new QtUi(); }
+QtUi *QtUi::instance() { return _instance ? _instance : new QtUi(); }
QtUiStyle *QtUi::style() { return qobject_cast<QtUiStyle*>(uiStyle()); }
MainWin *QtUi::mainWindow() { return _mainWin; }
/***************************************************************************
- * Copyright (C) 2005-09 by the Quassel Project *
+ * Copyright (C) 2005-2010 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "client.h"
#include "cliparser.h"
+#include "mainwin.h"
#include "qtui.h"
#include "qtuisettings.h"
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
+#include "mainwin.h"
+#include "qtui.h"
#include "statusnotifieritemdbus.h"
#include "statusnotifieritem.h"
-#include "qtui.h"
#include <QDBusConnection>
#include <QPixmap>