void MainWindow::msgServerSync(const MumbleProto::ServerSync &msg) { g.sh->sendPing(); // Send initial ping to establish UDP connection g.uiSession = msg.session(); g.pPermissions = ChanACL::Permissions(static_cast<unsigned int>(msg.permissions())); g.l->clearIgnore(); if (msg.has_welcome_text()) { QString str = u8(msg.welcome_text()); if (!str.isEmpty()) { g.l->log(Log::Information, tr("Welcome message: %1").arg(str)); } } pmModel->ensureSelfVisible(); pmModel->recheckLinks(); qmTargetUse.clear(); qmTargets.clear(); for (int i=1;i<6;++i) { qmTargetUse.insert(i, i); } iTargetCounter = 100; AudioInput::setMaxBandwidth(msg.max_bandwidth()); findDesiredChannel(); QString host, uname, pw; unsigned short port; g.sh->getConnectionInfo(host, port, uname, pw); QList<Shortcut> sc = Database::getShortcuts(g.sh->qbaDigest); if (! sc.isEmpty()) { for (int i=0;i<sc.count(); ++i) { Shortcut &s = sc[i]; s.iIndex = g.mw->gsWhisper->idx; } g.s.qlShortcuts << sc; GlobalShortcutEngine::engine->bNeedRemap = true; } const ClientUser *user = ClientUser::get(g.uiSession); connect(user, SIGNAL(talkingStateChanged()), this, SLOT(userStateChanged())); connect(user, SIGNAL(muteDeafStateChanged()), this, SLOT(userStateChanged())); connect(user, SIGNAL(prioritySpeakerStateChanged()), this, SLOT(userStateChanged())); connect(user, SIGNAL(recordingStateChanged()), this, SLOT(userStateChanged())); qstiIcon->setToolTip(tr("Mumble: %1").arg(Qt::escape(Channel::get(0)->qsName))); // Update QActions and menues on_qmServer_aboutToShow(); on_qmSelf_aboutToShow(); qmChannel_aboutToShow(); qmUser_aboutToShow(); on_qmConfig_aboutToShow(); updateTrayIcon(); }
void ClientUser::setPrioritySpeaker(bool priority) { if (bPrioritySpeaker == priority) return; bPrioritySpeaker = priority; emit prioritySpeakerStateChanged(); }