connect(lockAct, SIGNAL(toggled(bool)), SLOT(on_actionLockLayout_toggled(bool)));
coll->addAction("ToggleSearchBar", new Action(SmallIcon("edit-find"), tr("Show &Search Bar"), coll,
- 0, 0, tr("Ctrl+F")))->setCheckable(true);
+ 0, 0, QKeySequence::Find))->setCheckable(true);
coll->addAction("ShowAwayLog", new Action(tr("Show Away Log"), coll,
this, SLOT(showAwayLog())));
coll->addAction("ToggleStatusBar", new Action(tr("Show Status &Bar"), coll,
BufferViewDock *dock = qobject_cast<BufferViewDock *>(action->parent());
Q_ASSERT(dock);
if(enabled) {
- Client::bufferViewManager()->bufferViewOverlay()->addView(dock->bufferViewId());
+ Client::bufferViewOverlay()->addView(dock->bufferViewId());
+ BufferViewConfig *config = dock->config();
+ if(config && config->isInitialized()) {
+ BufferIdList buffers;
+ if(config->networkId().isValid()) {
+ foreach(BufferId bufferId, config->bufferList()) {
+ if(Client::networkModel()->networkId(bufferId) == config->networkId())
+ buffers << bufferId;
+ }
+ foreach(BufferId bufferId, config->temporarilyRemovedBuffers().toList()) {
+ if(Client::networkModel()->networkId(bufferId) == config->networkId())
+ buffers << bufferId;
+ }
+ } else {
+ buffers = BufferIdList::fromSet(config->bufferList().toSet() + config->temporarilyRemovedBuffers());
+ }
+ Client::backlogManager()->checkForBacklog(buffers);
+ }
} else {
- Client::bufferViewManager()->bufferViewOverlay()->removeView(dock->bufferViewId());
+ Client::bufferViewOverlay()->removeView(dock->bufferViewId());
}
}
#ifdef Q_WS_MAC
setUnifiedTitleAndToolBarOnMac(true);
#endif
- _mainToolBar = addToolBar("Main Toolbar");
+ _mainToolBar = addToolBar(tr("Main Toolbar"));
_mainToolBar->setObjectName("MainToolBar");
QtUi::toolBarActionProvider()->addActions(_mainToolBar, ToolBarActionProvider::MainToolBar);
void MainWin::messagesInserted(const QModelIndex &parent, int start, int end) {
Q_UNUSED(parent);
- if(QApplication::activeWindow() != 0)
- return;
+ bool hasFocus = QApplication::activeWindow() != 0;
for(int i = start; i <= end; i++) {
QModelIndex idx = Client::messageModel()->index(i, ChatLineModel::ContentsColumn);
continue;
}
Message::Flags flags = (Message::Flags)idx.data(ChatLineModel::FlagsRole).toInt();
- if(flags.testFlag(Message::Backlog) || flags.testFlag(Message::Self)) continue;
+ if(flags.testFlag(Message::Backlog) || flags.testFlag(Message::Self))
+ continue;
flags |= Message::Backlog; // we only want to trigger a highlight once!
Client::messageModel()->setData(idx, (int)flags, ChatLineModel::FlagsRole);
BufferId bufId = idx.data(ChatLineModel::BufferIdRole).value<BufferId>();
BufferInfo::Type bufType = Client::networkModel()->bufferType(bufId);
+ if(hasFocus && bufId == _bufferWidget->currentBuffer())
+ continue;
+
if(flags & Message::Highlight || bufType == BufferInfo::QueryBuffer) {
QModelIndex senderIdx = Client::messageModel()->index(i, ChatLineModel::SenderColumn);
QString sender = senderIdx.data(ChatLineModel::EditRole).toString();
QString contents = idx.data(ChatLineModel::DisplayRole).toString();
- QtUi::invokeNotification(bufId, sender, contents);
+ AbstractNotificationBackend::NotificationType type;
+
+ if(bufType == BufferInfo::QueryBuffer && !hasFocus)
+ type = AbstractNotificationBackend::PrivMsg;
+ else if(bufType == BufferInfo::QueryBuffer && hasFocus)
+ type = AbstractNotificationBackend::PrivMsgFocused;
+ else if(flags & Message::Highlight && !hasFocus)
+ type = AbstractNotificationBackend::Highlight;
+ else
+ type = AbstractNotificationBackend::HighlightFocused;
+
+ QtUi::invokeNotification(bufId, type, sender, contents);
}
}
}
QTreeView *view = new QTreeView;
view->setAttribute(Qt::WA_DeleteOnClose);
view->setWindowTitle("Debug BufferViewOverlay View");
- BufferViewOverlayFilter *filter = new BufferViewOverlayFilter(Client::bufferModel(), Client::bufferViewManager()->bufferViewOverlay());
+ BufferViewOverlayFilter *filter = new BufferViewOverlayFilter(Client::bufferModel(), Client::bufferViewOverlay());
filter->setParent(view);
view->setModel(filter);
view->setColumnWidth(0, 250);