#include "coreconnectdlg.h"
#include "iconloader.h"
#include "inputwidget.h"
+#include "inputline.h"
#include "irclistmodel.h"
#include "jumpkeyhandler.h"
#include "msgprocessorstatuswidget.h"
_trayIcon(new QSystemTrayIcon(this))
{
QtUiSettings uiSettings;
- QString style = uiSettings.value("Style", QString("")).toString();
- if(style != "") {
+ QString style = uiSettings.value("Style", QString()).toString();
+ if(!style.isEmpty()) {
QApplication::setStyle(style);
}
connect(Client::instance(), SIGNAL(networkCreated(NetworkId)), SLOT(clientNetworkCreated(NetworkId)));
connect(Client::instance(), SIGNAL(networkRemoved(NetworkId)), SLOT(clientNetworkRemoved(NetworkId)));
+ // Setup Dock Areas
+ setDockNestingEnabled(true);
+ setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);
+ setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
+ setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea);
+ setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
+
// Order is sometimes important
setupActions();
setupBufferWidget();
setupMenus();
setupViews();
+ setupTopicWidget();
setupChatMonitor();
setupNickWidget();
- setupTopicWidget();
setupInputWidget();
setupStatusBar();
setupSystray();
setupTitleSetter();
- // Setup Dock Areas
- setDockNestingEnabled(true);
- setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea);
- setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
- setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea);
- setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
-
// restore mainwin state
restoreState(s.value("MainWinState").toByteArray());
inputWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel());
_bufferWidget->setFocusProxy(inputWidget);
+
+ inputWidget->inputLine()->installEventFilter(_bufferWidget);
}
void MainWin::setupTopicWidget() {
topicwidget->setModel(Client::bufferModel());
topicwidget->setSelectionModel(Client::bufferModel()->standardSelectionModel());
- addDockWidget(Qt::TopDockWidgetArea, dock);
+ addDockWidget(Qt::TopDockWidgetArea, dock, Qt::Vertical);
_viewMenu->addAction(dock->toggleViewAction());
dock->toggleViewAction()->setText(tr("Show Topic Line"));
_viewMenu->addSeparator();
QAction *showStatusbar = QtUi::actionCollection("General")->action("ToggleStatusBar");
- UiSettings uiSettings;
+ QtUiSettings uiSettings;
bool enabled = uiSettings.value("ShowStatusBar", QVariant(true)).toBool();
showStatusbar->setChecked(enabled);
connect(showStatusbar, SIGNAL(toggled(bool)), statusBar(), SLOT(setVisible(bool)));
connect(showStatusbar, SIGNAL(toggled(bool)), this, SLOT(saveStatusBarStatus(bool)));
+
+ connect(Client::backlogManager(), SIGNAL(messagesRequested(const QString &)), this, SLOT(showStatusBarMessage(const QString &)));
+ connect(Client::backlogManager(), SIGNAL(messagesProcessed(const QString &)), this, SLOT(showStatusBarMessage(const QString &)));
}
void MainWin::saveStatusBarStatus(bool enabled) {
- UiSettings uiSettings;
+ QtUiSettings uiSettings;
uiSettings.setValue("ShowStatusBar", enabled);
}
systemTrayIcon()->setContextMenu(systrayMenu);
- UiSettings s;
+ QtUiSettings s;
if(s.value("UseSystemTrayIcon", QVariant(true)).toBool()) {
systemTrayIcon()->show();
}
void MainWin::changeEvent(QEvent *event) {
if(event->type() == QEvent::WindowStateChange) {
if(windowState() & Qt::WindowMinimized) {
- UiSettings s;
+ QtUiSettings s;
if(s.value("UseSystemTrayIcon").toBool() && s.value("MinimizeOnMinimize").toBool()) {
toggleVisibility();
event->ignore();
connect(Client::bufferViewManager(), SIGNAL(bufferViewConfigDeleted(int)), this, SLOT(removeBufferView(int)));
connect(Client::bufferViewManager(), SIGNAL(initDone()), this, SLOT(loadLayout()));
- Client::backlogManager()->requestInitialBacklog();
setConnectedState();
+ Client::backlogManager()->requestInitialBacklog();
}
void MainWin::setConnectedState() {
coll->action("ConnectCore")->setEnabled(false);
coll->action("DisconnectCore")->setEnabled(true);
coll->action("CoreInfo")->setEnabled(true);
- _viewMenu->setEnabled(true);
- _bufferWidget->show();
+ // _viewMenu->setEnabled(true);
statusBar()->showMessage(tr("Connected to core."));
if(sslLabel->width() == 0)
sslLabel->setPixmap(SmallIcon("security-low"));
coll->action("ConnectCore")->setEnabled(true);
coll->action("DisconnectCore")->setEnabled(false);
coll->action("CoreInfo")->setEnabled(false);
- _viewMenu->setEnabled(false);
- _bufferWidget->hide();
+ //_viewMenu->setEnabled(false);
statusBar()->showMessage(tr("Not connected to core."));
sslLabel->setPixmap(QPixmap());
updateIcon();
}
void MainWin::closeEvent(QCloseEvent *event) {
- UiSettings s;
+ QtUiSettings s;
if(s.value("UseSystemTrayIcon").toBool() && s.value("MinimizeOnClose").toBool()) {
toggleVisibility();
event->ignore();
s.setValue("MainWinPos", pos());
s.setValue("MainWinState", saveState());
}
+
+void MainWin::showStatusBarMessage(const QString &message) {
+ statusBar()->showMessage(message, 10000);
+}