#include "buffermodel.h"
#include "bufferviewfilter.h"
+#include "buffersettings.h"
#include "buffersyncer.h"
#include "client.h"
+#include "iconloader.h"
#include "mappedselectionmodel.h"
#include "network.h"
#include "networkmodel.h"
_removeBufferAction(tr("Delete buffer"), this),
_ignoreListAction(tr("Ignore list"), this),
- _hideJoinAction(tr("Join Events"), this),
- _hidePartAction(tr("Part Events"), this),
- _hideKillAction(tr("Kill Events"), this),
- _hideQuitAction(tr("Quit Events"), this),
- _hideModeAction(tr("Mode Events"), this)
-
+ _hideJoinAction(tr("Joins"), this),
+ _hidePartAction(tr("Parts"), this),
+ _hideQuitAction(tr("Quits"), this),
+ _hideNickAction(tr("Nick Changes"), this),
+ _hideModeAction(tr("Mode"), this),
+ _hideDayChangeAction(tr("Day Change"), this)
{
_hideJoinAction.setCheckable(true);
_hidePartAction.setCheckable(true);
- _hideKillAction.setCheckable(true);
_hideQuitAction.setCheckable(true);
+ _hideNickAction.setCheckable(true);
_hideModeAction.setCheckable(true);
- _hideJoinAction.setEnabled(false);
- _hidePartAction.setEnabled(false);
+ _hideDayChangeAction.setCheckable(true);
_ignoreListAction.setEnabled(false);
- _hideKillAction.setEnabled(false);
- _hideQuitAction.setEnabled(false);
- _hideModeAction.setEnabled(false);
- showChannelList.setIcon(QIcon(":/16x16/actions/oxygen/16x16/actions/format-list-unordered.png"));
+ showChannelList.setIcon(SmallIcon("format-list-unordered"));
connect(this, SIGNAL(collapsed(const QModelIndex &)), this, SLOT(on_collapse(const QModelIndex &)));
connect(this, SIGNAL(expanded(const QModelIndex &)), this, SLOT(on_expand(const QModelIndex &)));
setSortingEnabled(true);
sortByColumn(0, Qt::AscendingOrder);
-#ifndef Q_WS_QWS
- // this is a workaround to not join channels automatically... we need a saner way to navigate for qtopia anyway though,
- // such as mark first, activate at second click...
- connect(this, SIGNAL(activated(QModelIndex)), this, SLOT(joinChannel(QModelIndex)));
+
+ // activated() fails on X11 and Qtopia at least
+#if defined Q_WS_QWS or defined Q_WS_X11
+ connect(this, SIGNAL(doubleClicked(QModelIndex)), SLOT(joinChannel(QModelIndex)));
#else
- connect(this, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(joinChannel(QModelIndex))); // Qtopia uses single click for activation
+ // afaik this is better on Mac and Windows
+ connect(this, SIGNAL(activated(QModelIndex)), SLOT(joinChannel(QModelIndex)));
#endif
}
}
}
-QMenu *BufferView::createHideEventsSubMenu(QMenu &menu) {
- // QMenu *hideEventsMenu = new QMenu(tr("Hide Events"), &menu);
+QMenu *BufferView::createHideEventsSubMenu(QMenu &menu, BufferId bufferId) {
+ int filter = BufferSettings(bufferId).messageFilter();
+ _hideJoinAction.setChecked(filter & Message::Join);
+ _hidePartAction.setChecked(filter & Message::Part);
+ _hideQuitAction.setChecked(filter & Message::Quit);
+ _hideNickAction.setChecked(filter & Message::Nick);
+ _hideModeAction.setChecked(filter & Message::Mode);
+ _hideDayChangeAction.setChecked(filter & Message::DayChange);
+
QMenu *hideEventsMenu = menu.addMenu(tr("Hide Events"));
hideEventsMenu->addAction(&_hideJoinAction);
hideEventsMenu->addAction(&_hidePartAction);
- hideEventsMenu->addAction(&_hideKillAction);
hideEventsMenu->addAction(&_hideQuitAction);
+ hideEventsMenu->addAction(&_hideNickAction);
hideEventsMenu->addAction(&_hideModeAction);
+ hideEventsMenu->addAction(&_hideDayChangeAction);
return hideEventsMenu;
}
const Network *network = Client::network(index.data(NetworkModel::NetworkIdRole).value<NetworkId>());
Q_CHECK_PTR(network);
- QIcon connectionStateIcon;
+ QPixmap connectionStateIcon;
if(network) {
if(network->connectionState() == Network::Initialized) {
- connectionStateIcon = QIcon(":/22x22/actions/network-connect");
+ connectionStateIcon = SmallIcon("network-connect");
} else if(network->connectionState() == Network::Disconnected) {
- connectionStateIcon = QIcon(":/22x22/actions/network-disconnect");
+ connectionStateIcon = SmallIcon("network-disconnect");
} else {
- connectionStateIcon = QIcon(":/22x22/actions/gear");
+ connectionStateIcon = SmallIcon("network-wired"); // FIXME network-connecting
}
}
addItemToMenu(_hideBufferTemporarilyAction, contextMenu, (bool)config());
addItemToMenu(_hideBufferPermanentlyAction, contextMenu, (bool)config());
addItemToMenu(_removeBufferAction, contextMenu, index, InactiveState);
- createHideEventsSubMenu(contextMenu);
+ createHideEventsSubMenu(contextMenu, bufferInfo.bufferId());
addItemToMenu(_ignoreListAction, contextMenu);
break;
case BufferInfo::QueryBuffer:
addItemToMenu(_hideBufferTemporarilyAction, contextMenu, (bool)config());
addItemToMenu(_hideBufferPermanentlyAction, contextMenu, (bool)config());
addItemToMenu(_removeBufferAction, contextMenu);
- createHideEventsSubMenu(contextMenu);
+ createHideEventsSubMenu(contextMenu, bufferInfo.bufferId());
break;
default:
addItemToMenu(_hideBufferTemporarilyAction, contextMenu, (bool)config());
return;
}
+ if(result == & _hideJoinAction) {
+ BufferId bufferId = index.data(NetworkModel::BufferIdRole).value<BufferId>();
+ BufferSettings(bufferId).filterMessage(Message::Join, _hideJoinAction.isChecked());
+ return;
+ }
+ if(result == &_hidePartAction) {
+ BufferId bufferId = index.data(NetworkModel::BufferIdRole).value<BufferId>();
+ BufferSettings(bufferId).filterMessage(Message::Part, _hidePartAction.isChecked());
+ return;
+ }
+ if(result == &_hideQuitAction) {
+ BufferId bufferId = index.data(NetworkModel::BufferIdRole).value<BufferId>();
+ BufferSettings(bufferId).filterMessage(Message::Quit, _hideQuitAction.isChecked());
+ return;
+ }
+ if(result == &_hideNickAction) {
+ BufferId bufferId = index.data(NetworkModel::BufferIdRole).value<BufferId>();
+ BufferSettings(bufferId).filterMessage(Message::Nick, _hideNickAction.isChecked());
+ return;
+ }
+ if(result == &_hideModeAction) {
+ BufferId bufferId = index.data(NetworkModel::BufferIdRole).value<BufferId>();
+ BufferSettings(bufferId).filterMessage(Message::Mode, _hideModeAction.isChecked());
+ return;
+ }
+ if(result == &_hideDayChangeAction) {
+ BufferId bufferId = index.data(NetworkModel::BufferIdRole).value<BufferId>();
+ BufferSettings(bufferId).filterMessage(Message::DayChange, _hideDayChangeAction.isChecked());
+ return;
+ }
}
void BufferView::wheelEvent(QWheelEvent* event) {