* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include "mainwin.h"
-
+#include <QDir>
#include "aboutdlg.h"
#include "action.h"
#include "actioncollection.h"
#include "clientbacklogmanager.h"
#include "coreinfodlg.h"
#include "coreconnectdlg.h"
+#include "debuglogwidget.h"
+#include "debugmessagemodelfilter.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);
}
+ QApplication::setQuitOnLastWindowClosed(false);
+
setWindowTitle("Quassel IRC");
setWindowIconText("Quassel IRC");
updateIcon();
setDisconnectedState(); // Disable menus and stuff
show();
-
showCoreConnectionDlg(true); // autoconnect if appropriate
}
// Help
coll->addAction("AboutQuassel", new Action(SmallIcon("quassel"), tr("&About Quassel..."), coll,
this, SLOT(showAboutDlg())));
- coll->addAction("AboutQt", new Action(tr("About &Qt..."), coll,
+ coll->addAction("AboutQt", new Action(QIcon(":/pics/qt-logo.png"), tr("About &Qt..."), coll,
qApp, SLOT(aboutQt())));
coll->addAction("DebugNetworkModel", new Action(SmallIcon("tools-report-bug"), tr("Debug &NetworkModel"), coll,
this, SLOT(on_actionDebugNetworkModel_triggered())));
+ coll->addAction("DebugMessageModel", new Action(SmallIcon("tools-report-bug"), tr("Debug &MessageModel"), coll,
+ this, SLOT(on_actionDebugMessageModel_triggered())));
+ coll->addAction("DebugLog", new Action(SmallIcon("tools-report-bug"), tr("Debug &Log"), coll,
+ this, SLOT(on_actionDebugLog_triggered())));
}
void MainWin::setupMenus() {
_helpMenu->addSeparator();
_helpDebugMenu = _helpMenu->addMenu(SmallIcon("tools-report-bug"), tr("Debug"));
_helpDebugMenu->addAction(coll->action("DebugNetworkModel"));
+ _helpDebugMenu->addAction(coll->action("DebugMessageModel"));
+ _helpDebugMenu->addAction(coll->action("DebugLog"));
}
void MainWin::setupBufferWidget() {
inputWidget->setSelectionModel(Client::bufferModel()->standardSelectionModel());
_bufferWidget->setFocusProxy(inputWidget);
+
+ inputWidget->inputLine()->installEventFilter(_bufferWidget);
}
void MainWin::setupTopicWidget() {
_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() {
}
void MainWin::closeEvent(QCloseEvent *event) {
- UiSettings s;
+ QtUiSettings s;
if(s.value("UseSystemTrayIcon").toBool() && s.value("MinimizeOnClose").toBool()) {
toggleVisibility();
event->ignore();
} else {
event->accept();
+ QApplication::quit();
}
}
view->show();
}
+void MainWin::on_actionDebugMessageModel_triggered() {
+ QTableView *view = new QTableView(0);
+ DebugMessageModelFilter *filter = new DebugMessageModelFilter(view);
+ filter->setSourceModel(Client::messageModel());
+ view->setModel(filter);
+ view->setAttribute(Qt::WA_DeleteOnClose, true);
+ view->verticalHeader()->hide();
+ view->horizontalHeader()->setStretchLastSection(true);
+ view->show();
+}
+
+void MainWin::on_actionDebugLog_triggered() {
+ DebugLogWidget *logWidget = new DebugLogWidget(0);
+ logWidget->show();
+}
+
void MainWin::saveStateToSession(const QString &sessionId) {
return;
SessionSettings s(sessionId);
s.setValue("MainWinPos", pos());
s.setValue("MainWinState", saveState());
}
+
+void MainWin::showStatusBarMessage(const QString &message) {
+ statusBar()->showMessage(message, 10000);
+}