WidgetIrcMain::WidgetIrcMain(QWidget* parent) : QWidget(parent), treeWidget(0), dockTile(0) { tabWidget = new MultiSessionTabWidget(this); qRegisterMetaTypeStreamOperators<ConnectionInfo>("ConnectionInfo"); qRegisterMetaTypeStreamOperators<ConnectionInfos>("ConnectionInfos"); connect(tabWidget, SIGNAL(newTabRequested()), this, SLOT(connectTo()), Qt::QueuedConnection); connect(tabWidget, SIGNAL(splitterChanged(QByteArray)), this, SLOT(splitterChanged(QByteArray))); WidgetIrcHomePage* homePage = new WidgetIrcHomePage(tabWidget); connect(homePage, SIGNAL(connectRequested()), this, SLOT(initialize())); tabWidget->insertTab(0, homePage, tr("Home")); splitterIrcMain = new QSplitter(this); splitterIrcMain->setHandleWidth(1); splitterIrcMain->addWidget(tabWidget); QVBoxLayout *centralLayout = new QVBoxLayout(this); setLayout(centralLayout); centralLayout->addWidget(splitterIrcMain); if (QtDockTile::isAvailable()) dockTile = new QtDockTile(this); QShortcut* shortcut = new QShortcut(QKeySequence(tr("Ctrl+Q")), this); connect(shortcut, SIGNAL(activated()), this, SLOT(close())); #ifdef Q_WS_MAC QMenu* menu = new QMenu(this); menuBar()->addMenu(menu); QAction* action = new QAction(tr("Connect"), this); connect(action, SIGNAL(triggered()), this, SLOT(connectTo())); menu->addAction(action); action = new QAction(tr("Settings"), this); action->setMenuRole(QAction::PreferencesRole); connect(action, SIGNAL(triggered()), qApp, SLOT(showSettings())); menu->addAction(action); action = new QAction(tr("About %1").arg(Application::applicationName()), this); action->setMenuRole(QAction::AboutRole); connect(action, SIGNAL(triggered()), qApp, SLOT(aboutApplication())); menu->addAction(action); action = new QAction(tr("About Qt"), this); action->setMenuRole(QAction::AboutQtRole); connect(action, SIGNAL(triggered()), qApp, SLOT(aboutQt())); menu->addAction(action); #endif // Q_WS_MAC quazaaSettings.loadChat(); applySettings(); connect(&quazaaSettings, SIGNAL(chatSettingsChanged()), this, SLOT(applySettings())); QFile file(":Resource/stylesheet.css"); if (file.open(QFile::ReadOnly | QIODevice::Text)) setStyleSheet(QString::fromUtf8(file.readAll())); if(quazaaSettings.Chat.ConnectOnStartup) QTimer::singleShot(600, this, SLOT(initialize())); }
MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), treeWidget(0), trayIcon(0), dockTile(0) { tabWidget = new MultiSessionTabWidget(this); connect(tabWidget, SIGNAL(newTabRequested()), this, SLOT(connectTo()), Qt::QueuedConnection); connect(tabWidget, SIGNAL(alerted(MessageView*,IrcMessage*)), this, SLOT(alert(MessageView*,IrcMessage*))); connect(tabWidget, SIGNAL(highlighted(MessageView*,IrcMessage*)), this, SLOT(highlight(MessageView*,IrcMessage*))); connect(tabWidget, SIGNAL(splitterChanged(QByteArray)), this, SLOT(splitterChanged(QByteArray))); connect(tabWidget, SIGNAL(sessionAdded(Session*)), this, SLOT(sessionAdded(Session*))); connect(tabWidget, SIGNAL(sessionRemoved(Session*)), this, SLOT(sessionRemoved(Session*))); HomePage* homePage = new HomePage(tabWidget); connect(homePage, SIGNAL(connectRequested()), this, SLOT(connectTo())); tabWidget->insertTab(0, homePage, tr("Home")); QSplitter* splitter = new QSplitter(this); splitter->setHandleWidth(1); splitter->addWidget(tabWidget); setCentralWidget(splitter); if (QSystemTrayIcon::isSystemTrayAvailable()) { trayIcon = new TrayIcon(this); trayIcon->setIcon(QApplication::windowIcon()); trayIcon->setVisible(true); connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayIconActivated(QSystemTrayIcon::ActivationReason))); } if (QtDockTile::isAvailable()) dockTile = new QtDockTile(this); QShortcut* shortcut = new QShortcut(QKeySequence(tr("Ctrl+Q")), this); connect(shortcut, SIGNAL(activated()), this, SLOT(close())); #ifdef Q_WS_MAC QMenu* menu = new QMenu(this); menuBar()->addMenu(menu); QAction* action = new QAction(tr("Connect"), this); connect(action, SIGNAL(triggered()), this, SLOT(connectTo())); menu->addAction(action); action = new QAction(tr("Settings"), this); action->setMenuRole(QAction::PreferencesRole); connect(action, SIGNAL(triggered()), qApp, SLOT(showSettings())); menu->addAction(action); action = new QAction(tr("About %1").arg(Application::applicationName()), this); action->setMenuRole(QAction::AboutRole); connect(action, SIGNAL(triggered()), qApp, SLOT(aboutApplication())); menu->addAction(action); action = new QAction(tr("About Qt"), this); action->setMenuRole(QAction::AboutQtRole); connect(action, SIGNAL(triggered()), qApp, SLOT(aboutQt())); menu->addAction(action); #endif // Q_WS_MAC QSettings settings; if (settings.contains("geometry")) restoreGeometry(settings.value("geometry").toByteArray()); applySettings(Application::settings()); connect(qApp, SIGNAL(settingsChanged(Settings)), this, SLOT(applySettings(Settings))); QTimer::singleShot(1000, this, SLOT(initialize())); }