Exemplo n.º 1
0
void QtUiStyle::updateShowSenderBrackets()
{
    ChatViewSettings s;
    enableSenderBrackets(s.showSenderBrackets());
}
Exemplo n.º 2
0
ChatScene::ChatScene(QAbstractItemModel *model, const QString &idString, qreal width, ChatView *parent)
    : QGraphicsScene(0, 0, width, 0, (QObject *)parent),
    _chatView(parent),
    _idString(idString),
    _model(model),
    _singleBufferId(BufferId()),
    _sceneRect(0, 0, width, 0),
    _firstLineRow(-1),
    _viewportHeight(0),
    _markerLine(new MarkerLineItem(width)),
    _markerLineVisible(false),
    _markerLineValid(false),
    _markerLineJumpPending(false),
    _cutoffMode(CutoffRight),
    _selectingItem(0),
    _selectionStart(-1),
    _isSelecting(false),
    _clickMode(NoClick),
    _clickHandled(true),
    _leftButtonPressed(false)
{
    MessageFilter *filter = qobject_cast<MessageFilter *>(model);
    if (filter && filter->isSingleBufferFilter()) {
        _singleBufferId = filter->singleBufferId();
    }

    addItem(_markerLine);
    connect(this, SIGNAL(sceneRectChanged(const QRectF &)), _markerLine, SLOT(sceneRectChanged(const QRectF &)));

    ChatViewSettings defaultSettings;
    _defaultFirstColHandlePos = defaultSettings.value("FirstColumnHandlePos", 80).toInt();
    _defaultSecondColHandlePos = defaultSettings.value("SecondColumnHandlePos", 200).toInt();

    ChatViewSettings viewSettings(this);
    _firstColHandlePos = viewSettings.value("FirstColumnHandlePos", _defaultFirstColHandlePos).toInt();
    _secondColHandlePos = viewSettings.value("SecondColumnHandlePos", _defaultSecondColHandlePos).toInt();

    _firstColHandle = new ColumnHandleItem(QtUi::style()->firstColumnSeparator());
    addItem(_firstColHandle);
    _firstColHandle->setXPos(_firstColHandlePos);
    connect(_firstColHandle, SIGNAL(positionChanged(qreal)), this, SLOT(firstHandlePositionChanged(qreal)));
    connect(this, SIGNAL(sceneRectChanged(const QRectF &)), _firstColHandle, SLOT(sceneRectChanged(const QRectF &)));

    _secondColHandle = new ColumnHandleItem(QtUi::style()->secondColumnSeparator());
    addItem(_secondColHandle);
    _secondColHandle->setXPos(_secondColHandlePos);
    connect(_secondColHandle, SIGNAL(positionChanged(qreal)), this, SLOT(secondHandlePositionChanged(qreal)));

    connect(this, SIGNAL(sceneRectChanged(const QRectF &)), _secondColHandle, SLOT(sceneRectChanged(const QRectF &)));

    setHandleXLimits();

    if (model->rowCount() > 0)
        rowsInserted(QModelIndex(), 0, model->rowCount() - 1);

    connect(model, SIGNAL(rowsInserted(const QModelIndex &, int, int)),
        this, SLOT(rowsInserted(const QModelIndex &, int, int)));
    connect(model, SIGNAL(rowsAboutToBeRemoved(const QModelIndex &, int, int)),
        this, SLOT(rowsAboutToBeRemoved(const QModelIndex &, int, int)));
    connect(model, SIGNAL(rowsRemoved(QModelIndex, int, int)),
        this, SLOT(rowsRemoved()));
    connect(model, SIGNAL(dataChanged(QModelIndex, QModelIndex)), SLOT(dataChanged(QModelIndex, QModelIndex)));

#if defined HAVE_WEBKIT || defined HAVE_WEBENGINE
    webPreview.timer.setSingleShot(true);
    connect(&webPreview.timer, SIGNAL(timeout()), this, SLOT(webPreviewNextStep()));
#endif
    _showWebPreview = defaultSettings.showWebPreview();
    defaultSettings.notify("ShowWebPreview", this, SLOT(showWebPreviewChanged()));

    _showSenderBrackets = defaultSettings.showSenderBrackets();
    defaultSettings.notify("ShowSenderBrackets", this, SLOT(showSenderBracketsChanged()));

    _timestampFormatString = defaultSettings.timestampFormatString();
    defaultSettings.notify("TimestampFormat", this, SLOT(timestampFormatStringChanged()));
    updateTimestampHasBrackets();

    _clickTimer.setInterval(QApplication::doubleClickInterval());
    _clickTimer.setSingleShot(true);
    connect(&_clickTimer, SIGNAL(timeout()), SLOT(clickTimeout()));

    setItemIndexMethod(QGraphicsScene::NoIndex);
}