void AntiSpamFrame::loadGUIData() { if (AntiSpam::getInstance()) { lineEdit_PHRASE->setText(AntiSpam::getInstance()->getPhrase()); checkBox_ASFILTER->setChecked(WBGET(WB_ANTISPAM_AS_FILTER)); spinBox_TRYCOUNT->setValue(AntiSpam::getInstance()->getAttempts()); checkBox_FILTER_OPS->setChecked(WBGET(WB_ANTISPAM_FILTER_OPS)); QList<QString> keys = AntiSpam::getInstance()->getKeys(); QString words = ""; for (int i = 0; i < keys.size(); i++) words += keys.at(i) + "|"; if (words.right(1) == "|") words = words.left(words.length()-1); lineEdit_KEY->setText(words); loadBlackList(); loadGrayList(); loadWhiteList(); } }
SettingsHistory::SettingsHistory(QWidget *parent): QWidget(parent) { setupUi(this); connect(pushButton_ClearSearchHistory, SIGNAL(clicked(bool)), this, SLOT(slotClearSearchHistory())); connect(pushButton_ClearDirectoriesHistory, SIGNAL(clicked(bool)), this, SLOT(slotClearDirectoriesHistory())); checkBox_TTHSearchHistory->setChecked(WBGET("memorize-tth-search-phrases", false)); checkBox_SearchHistory->setChecked(WBGET("app/clear-search-history-on-exit", false)); checkBox_DirectoriesHistory->setChecked(WBGET("app/clear-download-directories-history-on-exit", false)); spinBox_SearchHistory->setValue(WIGET("search-history-items-number", 10)); spinBox_DirectoriesHistory->setValue(WIGET("download-directory-history-items-number", 5)); }
void IPFilterFrame::InitDocument() { if (WBGET(WB_IPFILTER_ENABLED)) { checkBox_ENABLE->setChecked(true); } else checkBox_ENABLE->setChecked(false); if (!model) model = new IPFilterModel(this); treeView_RULES->setModel(model); treeView_RULES->setContextMenuPolicy(Qt::CustomContextMenu); treeView_RULES->setAlternatingRowColors(true); slotCheckBoxClick(); connect(checkBox_ENABLE, SIGNAL(clicked()), this, SLOT(slotCheckBoxClick())); connect(pushButton_EXPORT, SIGNAL(clicked()), this, SLOT(slotExport())); connect(pushButton_IMPORT, SIGNAL(clicked()), this, SLOT(slotImport())); connect(pushButton_ADD, SIGNAL(clicked()), this, SLOT(slotAddRule())); connect(pushButton_UP, SIGNAL(clicked()), this, SLOT(slotUpDownClick())); connect(pushButton_DOWN, SIGNAL(clicked()), this, SLOT(slotUpDownClick())); connect(treeView_RULES, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotTreeViewContextMenu(QPoint))); }
void ToolBar::slotContextMenu(const QPoint &p){ int tab = tabbar->tabAt(p); ArenaWidget *awgt = findWidgetForIndex(tab); if (!awgt){ QMenu *m = new QMenu(this); QAction *act = new QAction(tr("Show close buttons"), m); act->setCheckable(true); act->setChecked(WBGET(WB_APP_TBAR_SHOW_CL_BTNS)); m->addAction(act); if (m->exec(QCursor::pos())){ WBSET(WB_APP_TBAR_SHOW_CL_BTNS, act->isChecked()); tabbar->setTabsClosable(act->isChecked()); } m->deleteLater(); return; } QMenu *m = awgt->getMenu(); if (m) m->exec(QCursor::pos()); }
void ToolBar::initTabs(){ tabbar = new QTabBar(parentWidget()); tabbar->setObjectName("arenaTabbar"); #if QT_VERSION >= 0x040500 tabbar->setTabsClosable(WBGET(WB_APP_TBAR_SHOW_CL_BTNS)); tabbar->setDocumentMode(true); tabbar->setMovable(true); tabbar->setSelectionBehaviorOnRemove(QTabBar::SelectPreviousTab); tabbar->setExpanding(false); #endif tabbar->setContextMenuPolicy(Qt::CustomContextMenu); tabbar->setSizePolicy(QSizePolicy::Expanding, tabbar->sizePolicy().verticalPolicy()); tabbar->setAcceptDrops(true); tabbar->installEventFilter(this); shortcuts << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_1), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_2), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_3), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_4), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_5), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_6), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_7), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_8), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_9), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_0), parentWidget())); foreach (QShortcut *s, shortcuts){ s->setContext(Qt::ApplicationShortcut); connect(s, SIGNAL(activated()), this, SLOT(slotShorcuts())); }
void SettingsNotification::init(){ WulforUtil *WU = WulforUtil::getInstance(); {//Text checkBox_TRAY->setChecked(WBGET(WB_TRAY_ENABLED)); checkBox_TRAY->setEnabled(QSystemTrayIcon::isSystemTrayAvailable()); checkBox_EXIT_CONFIRM->setChecked(WBGET(WB_EXIT_CONFIRM)); groupBox->setChecked(WBGET(WB_NOTIFY_ENABLED)); unsigned emap = static_cast<unsigned>(WIGET(WI_NOTIFY_EVENTMAP)); checkBox_NICKSAY->setChecked(emap & Notification::NICKSAY); checkBox_ANY->setChecked(emap & Notification::ANY); checkBox_PM->setChecked(emap & Notification::PM); checkBox_TRDONE->setChecked(emap & Notification::TRANSFER); checkBox_MWACTIVE->setChecked(WBGET(WB_NOTIFY_SHOW_ON_ACTIVE)); checkBox_MWVISIBLE->setChecked(WBGET(WB_NOTIFY_CH_ICON_ALWAYS)); comboBox->setCurrentIndex(WIGET(WI_NOTIFY_MODULE)); } {//Sound QString encoded = WSGET(WS_NOTIFY_SOUNDS); QString decoded = QByteArray::fromBase64(encoded.toAscii()); QStringList sounds = decoded.split("\n"); if (sounds.size() == 3){ lineEdit_SNDNICKSAY->setText(sounds.at(0)); lineEdit_SNDPM->setText(sounds.at(1)); lineEdit_SNDTRDONE->setText(sounds.at(2)); } groupBox_SND->setChecked(WBGET(WB_NOTIFY_SND_ENABLED)); groupBox_SNDCMD->setChecked(WBGET(WB_NOTIFY_SND_EXTERNAL)); lineEdit_SNDCMD->setText(WSGET(WS_NOTIFY_SND_CMD)); unsigned emap = static_cast<unsigned>(WIGET(WI_NOTIFY_SNDMAP)); groupBox_NICK->setChecked(emap & Notification::NICKSAY); groupBox_PM->setChecked(emap & Notification::PM); groupBox_TR->setChecked(emap & Notification::TRANSFER); } toolButton_BRWNICK->setIcon(WU->getPixmap(WulforUtil::eiFOLDER_BLUE)); toolButton_BRWPM->setIcon(WU->getPixmap(WulforUtil::eiFOLDER_BLUE)); toolButton_BRWTR->setIcon(WU->getPixmap(WulforUtil::eiFOLDER_BLUE)); connect(toolButton_BRWNICK, SIGNAL(clicked()), this, SLOT(slotBrowseFile())); connect(toolButton_BRWPM, SIGNAL(clicked()), this, SLOT(slotBrowseFile())); connect(toolButton_BRWTR, SIGNAL(clicked()), this, SLOT(slotBrowseFile())); connect(pushButton_TESTNICKSAY, SIGNAL(clicked()), this, SLOT(slotTest())); connect(pushButton_TESTPM, SIGNAL(clicked()), this, SLOT(slotTest())); connect(pushButton_TESTTR, SIGNAL(clicked()), this, SLOT(slotTest())); connect(groupBox_SNDCMD, SIGNAL(toggled(bool)), this, SLOT(slotToggleSndCmd(bool))); }
void SettingsNotification::playFile(const QString &file){ if (WBGET(WB_NOTIFY_SND_ENABLED) || groupBox_SND->isChecked()){ if (file.isEmpty() || !QFile::exists(file)) return; if (!WBGET(WB_NOTIFY_SND_EXTERNAL)) QSound::play(file); else { QString cmd = lineEdit_SNDCMD->text(); if (cmd.isEmpty()) return; ShellCommandRunner *r = new ShellCommandRunner(cmd, QStringList() << file, this); connect(r, SIGNAL(finished(bool,QString)), this, SLOT(slotCmdFinished(bool,QString))); r->start(); } } }
void AntiSpamFrame::slotAntiSpamSwitch() { bool b = checkBox_ASENABLE->isChecked(); WBSET(WB_ANTISPAM_ENABLED, b); checkBox_ASFILTER->setEnabled(b); groupBox_WHITE->setEnabled(b); groupBox_BLACK->setEnabled(b); groupBox_GRAY->setEnabled(b); groupBox_PHRASE->setEnabled(b); pushButton_WTOG->setEnabled(b); pushButton_WTOB->setEnabled(b); pushButton_BTOW->setEnabled(b); pushButton_BTOG->setEnabled(b); pushButton_GTOB->setEnabled(b); pushButton_GTOW->setEnabled(b); groupBox_WHITE->setEnabled(!WBGET(WB_ANTISPAM_AS_FILTER)); groupBox_GRAY->setEnabled(!WBGET(WB_ANTISPAM_AS_FILTER)); groupBox_PHRASE->setEnabled(!WBGET(WB_ANTISPAM_AS_FILTER)); if (!b && AntiSpam::getInstance()) { AntiSpam::getInstance()->setAttempts(spinBox_TRYCOUNT->value()); AntiSpam::getInstance()->saveSettings(); AntiSpam::getInstance()->saveLists(); AntiSpam::deleteInstance(); } else if (b && !AntiSpam::getInstance()) { AntiSpam::newInstance(); AntiSpam::getInstance()->loadSettings(); AntiSpam::getInstance()->loadLists(); loadGUIData(); } }
bool SideBarView::eventFilter ( QObject *obj, QEvent *e) { if (obj == this && e->type() == QEvent::Resize) { if (WBGET(SIDEBAR_SHOW_CLOSEBUTTONS, true)){ header()->resizeSection(0, contentsRect().width() - 20); header()->resizeSection(1, 18); } else{ header()->resizeSection(0, contentsRect().width()); header()->resizeSection(1, 0); } } return QObject::eventFilter (obj , e); }
void TabButton::updateGeometry() { if (WBGET(WB_APP_TBAR_SHOW_CL_BTNS)){ if (!label->isVisible()) label->show(); label->setGeometry(width()-LABELWIDTH-margin*2, (height()-LABELWIDTH)/2, LABELWIDTH, LABELWIDTH); } else label->hide(); px_label->setGeometry(margin*2, (height()-LABELWIDTH)/2, LABELWIDTH, LABELWIDTH); updateStyles(); }
void ToolBar::initTabs(){ tabbar = new QTabBar(parentWidget()); tabbar->setObjectName("arenaTabbar"); tabbar->setTabsClosable(WBGET(WB_APP_TBAR_SHOW_CL_BTNS)); tabbar->setDocumentMode(true); tabbar->setMovable(true); tabbar->setSelectionBehaviorOnRemove(QTabBar::SelectPreviousTab); tabbar->setExpanding(false); tabbar->setContextMenuPolicy(Qt::CustomContextMenu); tabbar->setSizePolicy(QSizePolicy::Expanding, tabbar->sizePolicy().verticalPolicy()); tabbar->setAcceptDrops(true); tabbar->installEventFilter(this); shortcuts << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_1), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_2), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_3), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_4), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_5), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_6), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_7), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_8), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_9), parentWidget())) << (new QShortcut(QKeySequence(Qt::ALT + Qt::Key_0), parentWidget())); for (const auto &s : shortcuts){ s->setContext(Qt::ApplicationShortcut); connect(s, SIGNAL(activated()), this, SLOT(slotShorcuts())); } connect(tabbar, SIGNAL(currentChanged(int)), this, SLOT(slotIndexChanged(int))); connect(tabbar, SIGNAL(tabMoved(int,int)), this, SLOT(slotTabMoved(int,int))); connect(tabbar, SIGNAL(tabCloseRequested(int)), this, SLOT(slotClose(int))); connect(tabbar, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotContextMenu(QPoint))); connect(ArenaWidgetManager::getInstance(), SIGNAL(added(ArenaWidget*)), this, SLOT(insertWidget(ArenaWidget*))); connect(ArenaWidgetManager::getInstance(), SIGNAL(removed(ArenaWidget*)), this, SLOT(removeWidget(ArenaWidget*))); connect(ArenaWidgetManager::getInstance(), SIGNAL(activated(ArenaWidget*)), this, SLOT(mapped(ArenaWidget*))); connect(ArenaWidgetManager::getInstance(), SIGNAL(updated(ArenaWidget*)), this, SLOT(updated(ArenaWidget*))); connect(ArenaWidgetManager::getInstance(), SIGNAL(toggled(ArenaWidget*)), this, SLOT(toggled(ArenaWidget*))); connect(GlobalTimer::getInstance(), SIGNAL(second()), this, SLOT(redraw())); addWidget(tabbar); }
void ToolBar::insertWidget(ArenaWidget *awgt){ if (!(awgt && awgt->getWidget()) || (awgt->state() & ArenaWidget::Hidden) || map.contains(awgt)) return; int index = tabbar->addTab(awgt->getPixmap(), awgt->getArenaShortTitle().left(32)); if (awgt->toolButton()) awgt->toolButton()->setChecked(true); if (index >= 0){ map.insert(awgt, index); if (tabbar->isHidden()) tabbar->show(); if (!(typeid(*awgt) == typeid(PMWindow) && WBGET(WB_CHAT_KEEPFOCUS))) tabbar->setCurrentIndex(index); } }
void AntiSpamFrame::InitDocument() { if (WBGET(WB_ANTISPAM_ENABLED)) { if (!AntiSpam::getInstance()) AntiSpam::newInstance(); AntiSpam::getInstance()->loadSettings(); AntiSpam::getInstance()->loadLists(); checkBox_ASENABLE->setChecked(true); } else checkBox_ASENABLE->setChecked(false); loadGUIData(); connect(checkBox_ASENABLE, SIGNAL(clicked()), this, SLOT(slotAntiSpamSwitch())); connect(checkBox_ASFILTER, SIGNAL(clicked()), this, SLOT(slotAsFilter())); connect(checkBox_FILTER_OPS, SIGNAL(clicked()), this, SLOT(slotFilterOps())); connect(pushButton_ADDWHITE, SIGNAL(clicked()), this, SLOT(slotAddToWhite())); connect(pushButton_ADDBLACK, SIGNAL(clicked()), this, SLOT(slotAddToBlack())); connect(pushButton_ADDGRAY, SIGNAL(clicked()), this, SLOT(slotAddToGray())); connect(pushButton_REMWHITE, SIGNAL(clicked()), this, SLOT(slotRemFromWhite())); connect(pushButton_REMBLACK, SIGNAL(clicked()), this, SLOT(slotRemFromBlack())); connect(pushButton_REMGRAY, SIGNAL(clicked()), this, SLOT(slotRemFromGray())); connect(pushButton_CLRWHITE, SIGNAL(clicked()), this, SLOT(slotClearWhite())); connect(pushButton_CLRBLACK, SIGNAL(clicked()), this, SLOT(slotClearBlack())); connect(pushButton_CLRGRAY, SIGNAL(clicked()), this, SLOT(slotClearGray())); connect(pushButton_OK, SIGNAL(clicked()), this, SLOT(slotAccept())); connect(pushButton_WTOG, SIGNAL(clicked()), this, SLOT(slotWToG())); connect(pushButton_WTOB, SIGNAL(clicked()), this, SLOT(slotWToB())); connect(pushButton_BTOW, SIGNAL(clicked()), this, SLOT(slotBToW())); connect(pushButton_BTOG, SIGNAL(clicked()), this, SLOT(slotBToG())); connect(pushButton_GTOB, SIGNAL(clicked()), this, SLOT(slotGToB())); connect(pushButton_GTOW, SIGNAL(clicked()), this, SLOT(slotGToW())); connect(WulforSettings::getInstance(), SIGNAL(strValueChanged(QString,QString)), this, SLOT(slotSettingsChanged(QString,QString))); slotAntiSpamSwitch(); }
void TabButton::updateStyles() { label->setStyleSheet(QString("QLabel { margin-left: %1; }").arg(margin)); px_label->setStyleSheet(QString("QLabel { margin-right: %1; }").arg(margin*2)); QString styleText_pressed = "QPushButton:checked {\n"; QString styleText_button = "QPushButton {\n"; if (WBGET(WB_APP_TBAR_SHOW_CL_BTNS)){ styleText_pressed += QString("padding-right: %1;\n padding-left: %1;\n").arg(LABELWIDTH); styleText_button += QString("padding-right: %1;\n padding-left: %1;\n").arg(LABELWIDTH); } else{ styleText_pressed += QString("margin-right: %1;\n margin-left: %1;\n").arg(LABELWIDTH*6); styleText_button += QString("margin-right: %1;\n margin-left: %1;\n").arg(LABELWIDTH*6); } styleText_button += "}\n"; styleText_pressed += "}\n"; setStyleSheet(styleText_button + styleText_pressed); }
void SettingsGUI::ok() { SettingsManager *SM = SettingsManager::getInstance(); { //Basic tab if (custom_style && comboBox_THEMES->currentIndex() > 0) WSSET(WS_APP_THEME, comboBox_THEMES->currentText()); else if (!comboBox_THEMES->currentIndex()) WSSET(WS_APP_THEME, ""); if (!lineEdit_APPFONT->text().isEmpty()) WSSET(WS_APP_FONT, lineEdit_APPFONT->text()); if (!lineEdit_LANGFILE->text().isEmpty() && (lineEdit_LANGFILE->text() != WSGET(WS_TRANSLATION_FILE))) WSSET(WS_TRANSLATION_FILE, lineEdit_LANGFILE->text()); WBSET(WB_MAINWINDOW_REMEMBER, radioButton_REMEMBER->isChecked()); WBSET(WB_MAINWINDOW_HIDE, radioButton_HIDE->isChecked()); if (WBGET(WB_TRAY_ENABLED) != groupBox_TRAY->isChecked()) { WBSET(WB_TRAY_ENABLED, groupBox_TRAY->isChecked()); Notify->enableTray(WBGET(WB_TRAY_ENABLED)); } if (WSGET(WS_APP_EMOTICON_THEME) != comboBox_EMOT->currentText()) { WSSET(WS_APP_EMOTICON_THEME, comboBox_EMOT->currentText()); if (EmoticonFactory::getInstance()) EmoticonFactory::getInstance()->load(); } if (comboBox_TABBAR->currentIndex() == 2) { WBSET(WB_MAINWINDOW_USE_SIDEBAR, true); WBSET(WB_MAINWINDOW_USE_M_TABBAR, false); } else if (comboBox_TABBAR->currentIndex() == 1) { WBSET(WB_MAINWINDOW_USE_SIDEBAR, false); WBSET(WB_MAINWINDOW_USE_M_TABBAR, true); } else { WBSET(WB_MAINWINDOW_USE_SIDEBAR, false); WBSET(WB_MAINWINDOW_USE_M_TABBAR, false); } WBSET("app/use-icon-theme", checkBox_ICONTHEME->isChecked()); WBSET("mainwindow/dont-show-icons-in-menus", checkBox_HIDE_ICONS_IN_MENU->isChecked()); } { //Chat tab WBSET(WB_SHOW_HIDDEN_USERS, checkBox_CHATHIDDEN->isChecked()); WBSET(WB_CHAT_SHOW_JOINS, checkBox_CHATJOINS->isChecked()); WBSET(WB_CHAT_SHOW_JOINS_FAV, checkBox_JOINSFAV->isChecked()); WBSET(WB_CHAT_REDIRECT_BOT_PMS, checkBox_REDIRECTPMBOT->isChecked()); WBSET("hubframe/redirect-pm-to-main-chat", checkBox_REDIRECT_UNREAD->isChecked()); WBSET(WB_CHAT_KEEPFOCUS, checkBox_KEEPFOCUS->isChecked()); WBSET("hubframe/unreaden-draw-line", checkBox_UNREADEN_DRAW_LINE->isChecked()); WBSET(WB_CHAT_ROTATING_MSGS, checkBox_ROTATING->isChecked()); WBSET(WB_USE_CTRL_ENTER, checkBox_USE_CTRL_ENTER->isChecked()); WBSET(WB_APP_ENABLE_EMOTICON, checkBox_EMOT->isChecked()); WBSET(WB_APP_FORCE_EMOTICONS, checkBox_EMOTFORCE->isChecked()); WBSET(WB_CHAT_USE_SMILE_PANEL, checkBox_SMILEPANEL->isChecked()); WBSET(WB_CHAT_HIDE_SMILE_PANEL, checkBox_HIDESMILEPANEL->isChecked()); } { //Chat (extended) tab WISET(WI_CHAT_DBLCLICK_ACT, comboBox_DBL_CLICK->currentIndex()); WISET(WI_CHAT_MDLCLICK_ACT, comboBox_MDL_CLICK->currentIndex()); WISET(WI_DEF_MAGNET_ACTION, comboBox_DEF_MAGNET_ACTION->currentIndex()); SM->set(SettingsManager::APP_UNIT_BASE, comboBox_APP_UNIT_BASE->currentIndex()); WBSET(WB_CHAT_HIGHLIGHT_FAVS, checkBox_HIGHLIGHTFAVS->isChecked()); SM->set(SettingsManager::USE_IP, checkBox_CHAT_SHOW_IP->isChecked()); WBSET("hubframe/use-bb-code", checkBox_BB_CODE->isChecked()); WSSET(WS_CHAT_TIMESTAMP, lineEdit_TIMESTAMP->text()); WISET(WI_OUT_IN_HIST, spinBox_OUT_IN_HIST->value()); WISET(WI_CHAT_MAXPARAGRAPHS, spinBox_PARAGRAPHS->value()); SM->set(SettingsManager::IGNORE_BOT_PMS, checkBox_IGNOREPMBOT->isChecked()); SM->set(SettingsManager::IGNORE_HUB_PMS, checkBox_IGNOREPMHUB->isChecked()); SM->set(SettingsManager::GET_USER_COUNTRY, checkBox_CHAT_SHOW_CC->isChecked()); WSSET(WS_CHAT_SEPARATOR, comboBox_CHAT_SEPARATOR->currentText()); } { //Color tab int i = 0; WSSET(WS_CHAT_LOCAL_COLOR, QColor(listWidget_CHATCOLOR->item(i++)->icon().pixmap(10, 10).toImage().pixel(0, 0)).name()); WSSET(WS_CHAT_OP_COLOR, QColor(listWidget_CHATCOLOR->item(i++)->icon().pixmap(10, 10).toImage().pixel(0, 0)).name()); WSSET(WS_CHAT_BOT_COLOR, QColor(listWidget_CHATCOLOR->item(i++)->icon().pixmap(10, 10).toImage().pixel(0, 0)).name()); WSSET(WS_CHAT_PRIV_LOCAL_COLOR, QColor(listWidget_CHATCOLOR->item(i++)->icon().pixmap(10, 10).toImage().pixel(0, 0)).name()); WSSET(WS_CHAT_PRIV_USER_COLOR, QColor(listWidget_CHATCOLOR->item(i++)->icon().pixmap(10, 10).toImage().pixel(0, 0)).name()); WSSET(WS_CHAT_SAY_NICK, QColor(listWidget_CHATCOLOR->item(i++)->icon().pixmap(10, 10).toImage().pixel(0, 0)).name()); WSSET(WS_CHAT_STAT_COLOR, QColor(listWidget_CHATCOLOR->item(i++)->icon().pixmap(10, 10).toImage().pixel(0, 0)).name()); WSSET(WS_CHAT_USER_COLOR, QColor(listWidget_CHATCOLOR->item(i++)->icon().pixmap(10, 10).toImage().pixel(0, 0)).name()); WSSET(WS_CHAT_FAVUSER_COLOR, QColor(listWidget_CHATCOLOR->item(i++)->icon().pixmap(10, 10).toImage().pixel(0, 0)).name()); WSSET(WS_CHAT_TIME_COLOR, QColor(listWidget_CHATCOLOR->item(i++)->icon().pixmap(10, 10).toImage().pixel(0, 0)).name()); WSSET(WS_CHAT_MSG_COLOR, QColor(listWidget_CHATCOLOR->item(i++)->icon().pixmap(10, 10).toImage().pixel(0, 0)).name()); WSSET(WS_CHAT_FIND_COLOR, h_color.name()); WISET(WI_CHAT_FIND_COLOR_ALPHA, horizontalSlider_H_COLOR->value()); WSSET(WS_APP_SHARED_FILES_COLOR, shared_files_color.name()); WISET(WI_APP_SHARED_FILES_ALPHA, horizontalSlider_SHAREDFILES->value()); WBSET("hubframe/change-chat-background-color", checkBox_CHAT_BACKGROUND_COLOR->isChecked()); if (chat_background_color.isValid()) WSSET("hubframe/chat-background-color", chat_background_color.name()); if (!checkBox_CHAT_BACKGROUND_COLOR->isChecked()) WSSET("hubframe/chat-background-color", QTextEdit().palette().color(QPalette::Active, QPalette::Base).name()); if (downloads_clr.isValid()) WVSET("transferview/download-bar-color", downloads_clr); if (uploads_clr.isValid()) WVSET("transferview/upload-bar-color", uploads_clr); } WSSET(WS_SETTINGS_GUI_FONTS_STATE, tableView->horizontalHeader()->saveState().toBase64()); emit saveFonts(); }
void SettingsNotification::init(){ WulforUtil *WU = WulforUtil::getInstance(); {//Text checkBox_EXIT_CONFIRM->setChecked(WBGET(WB_EXIT_CONFIRM)); groupBox->setChecked(WBGET(WB_NOTIFY_ENABLED)); unsigned emap = static_cast<unsigned>(WIGET(WI_NOTIFY_EVENTMAP)); checkBox_NICKSAY->setChecked(emap & Notification::NICKSAY); checkBox_ANY->setChecked(emap & Notification::ANY); checkBox_PM->setChecked(emap & Notification::PM); checkBox_TRDONE->setChecked(emap & Notification::TRANSFER); checkBox_FAVJOIN->setChecked(emap & Notification::FAVORITE); checkBox_MWACTIVE->setChecked(WBGET(WB_NOTIFY_SHOW_ON_ACTIVE)); checkBox_MWVISIBLE->setChecked(WBGET(WB_NOTIFY_SHOW_ON_VISIBLE)); checkBox_CHICON->setChecked(WBGET(WB_NOTIFY_CH_ICON_ALWAYS)); if (WBGET(WB_NOTIFY_SHOW_ON_ACTIVE)){ checkBox_MWVISIBLE->setChecked(true); checkBox_MWVISIBLE->setDisabled(true); } comboBox->setCurrentIndex(WIGET(WI_NOTIFY_MODULE)); } {//Sound QString encoded = WSGET(WS_NOTIFY_SOUNDS); QString decoded = QByteArray::fromBase64(encoded.toAscii()); QStringList sounds = decoded.split("\n"); if (sounds.size() == 4){ lineEdit_SNDNICKSAY->setText(sounds.at(0)); lineEdit_SNDPM->setText(sounds.at(1)); lineEdit_SNDTRDONE->setText(sounds.at(2)); lineEdit_FAV->setText(sounds.at(3)); } groupBox_SND->setChecked(WBGET(WB_NOTIFY_SND_ENABLED)); groupBox_SNDCMD->setChecked(WBGET(WB_NOTIFY_SND_EXTERNAL)); lineEdit_SNDCMD->setText(WSGET(WS_NOTIFY_SND_CMD)); unsigned emap = static_cast<unsigned>(WIGET(WI_NOTIFY_SNDMAP)); groupBox_NICK->setChecked(emap & Notification::NICKSAY); groupBox_PM->setChecked(emap & Notification::PM); groupBox_TR->setChecked(emap & Notification::TRANSFER); groupBox_FAV->setChecked(emap & Notification::FAVORITE); checkBox_ACTIVEPM->setChecked(WBGET("notification/play-sound-with-active-pm", true)); } toolButton_BRWNICK->setIcon(WU->getPixmap(WulforUtil::eiFOLDER_BLUE)); toolButton_BRWPM->setIcon(WU->getPixmap(WulforUtil::eiFOLDER_BLUE)); toolButton_BRWTR->setIcon(WU->getPixmap(WulforUtil::eiFOLDER_BLUE)); toolButton_BRWFAV->setIcon(WU->getPixmap(WulforUtil::eiFOLDER_BLUE)); connect(toolButton_BRWNICK, SIGNAL(clicked()), this, SLOT(slotBrowseFile())); connect(toolButton_BRWPM, SIGNAL(clicked()), this, SLOT(slotBrowseFile())); connect(toolButton_BRWTR, SIGNAL(clicked()), this, SLOT(slotBrowseFile())); connect(toolButton_BRWFAV, SIGNAL(clicked()), this, SLOT(slotBrowseFile())); connect(pushButton_TESTNICKSAY, SIGNAL(clicked()), this, SLOT(slotTest())); connect(pushButton_TESTPM, SIGNAL(clicked()), this, SLOT(slotTest())); connect(pushButton_TESTTR, SIGNAL(clicked()), this, SLOT(slotTest())); connect(pushButton_TESTFAV, SIGNAL(clicked()), this, SLOT(slotTest())); connect(groupBox_SNDCMD, SIGNAL(toggled(bool)), this, SLOT(slotToggleSndCmd(bool))); #ifndef DBUS_NOTIFY frame->setVisible(false); #endif }
QVariant UserListModel::data(const QModelIndex & index, int role) const { if (!index.isValid()) return QVariant(); UserListItem * item = static_cast<UserListItem*>(index.internalPointer()); if (!item) return QVariant(); switch (role){ case Qt::DisplayRole: { switch (index.column()) { case COLUMN_NICK: return item->nick; case COLUMN_COMMENT: return item->comm; case COLUMN_TAG: return item->tag; case COLUMN_CONN: return item->conn; case COLUMN_EMAIL: return item->email; case COLUMN_SHARE: return WulforUtil::formatBytes(item->share); case COLUMN_IP: return item->ip; } break; } case Qt::DecorationRole: { if (index.column() != COLUMN_NICK) break; if (item->px) return (*item->px); break; } case Qt::ToolTipRole: { if (index.column() == COLUMN_SHARE) return QString::number(item->share); else { QString ttip = ""; ttip = "<b>" + headerData(COLUMN_NICK, Qt::Horizontal, Qt::DisplayRole).toString() + "</b>: " + item->nick + "<br/>"; ttip += "<b>" + headerData(COLUMN_COMMENT, Qt::Horizontal, Qt::DisplayRole).toString() + "</b>: " + item->comm + "<br/>"; ttip += "<b>" + headerData(COLUMN_EMAIL, Qt::Horizontal, Qt::DisplayRole).toString() + "</b>: " + item->email + "<br/>"; ttip += "<b>" + headerData(COLUMN_IP, Qt::Horizontal, Qt::DisplayRole).toString() + "</b>: " + item->ip + "<br/>"; ttip += "<b>" + headerData(COLUMN_SHARE, Qt::Horizontal, Qt::DisplayRole).toString() + "</b>: " + WulforUtil::formatBytes(item->share) + "<br/>"; QString tag = item->tag; WulforUtil::getInstance()->textToHtml(tag, true); ttip += "<b>" + headerData(COLUMN_TAG, Qt::Horizontal, Qt::DisplayRole).toString() + "</b>: " + tag + "<br/>"; ttip += "<b>" + headerData(COLUMN_CONN, Qt::Horizontal, Qt::DisplayRole).toString() + "</b>: " + item->conn + "<br/>"; if (item->isOp) ttip += tr("<b>Hub role</b>: Operator"); else ttip += tr("<b>Hub role</b>: User"); if (FavoriteManager::getInstance()->isFavoriteUser(item->ptr)) ttip += tr("<br/><b>Favorite user</b>"); return ttip; } break; } case Qt::TextAlignmentRole: { if (index.column() == COLUMN_SHARE) return static_cast<int>(Qt::AlignRight | Qt::AlignVCenter); break; } case Qt::FontRole: { QFont font; font.setBold(true); if (item->fav && WBGET(WB_CHAT_HIGHLIGHT_FAVS)) return font; break; } } return QVariant(); }
void SettingsGUI::init() { { //Basic tab WulforUtil *WU = WulforUtil::getInstance(); QStringList styles = QStyleFactory::keys(); comboBox_THEMES->addItem(tr("Default (need to restart)")); for (const QString &s : styles) comboBox_THEMES->addItem(s); comboBox_THEMES->setCurrentIndex(styles.indexOf(WSGET(WS_APP_THEME)) >= 0? (styles.indexOf(WSGET(WS_APP_THEME))+1) : 0); if (WSGET(WS_APP_FONT).isEmpty()) { lineEdit_APPFONT->setText(qApp->font().toString()); WSSET(WS_APP_FONT, qApp->font().toString()); } else lineEdit_APPFONT->setText(WSGET(WS_APP_FONT)); int i = 0; int k = -1; #if !defined(Q_OS_WIN) QDir translationsDir(CLIENT_TRANSLATIONS_DIR); #else QDir translationsDir(qApp->applicationDirPath()+QDir::separator()+CLIENT_TRANSLATIONS_DIR); #endif QMap<QString, QString> langNames; langNames["en.qm"] = tr("English"); langNames["ru.qm"] = tr("Russian"); langNames["be.qm"] = tr("Belarusian"); langNames["hu.qm"] = tr("Hungarian"); langNames["fr.qm"] = tr("French"); langNames["pl.qm"] = tr("Polish"); langNames["pt_BR.qm"] = tr("Portuguese (Brazil)"); langNames["sr.qm"] = tr("Serbian (Cyrillic)"); langNames["*****@*****.**"] = tr("Serbian (Latin)"); langNames["uk.qm"] = tr("Ukrainian"); langNames["es.qm"] = tr("Spanish"); langNames["eu.qm"] = tr("Basque"); langNames["bg.qm"] = tr("Bulgarian"); langNames["sk.qm"] = tr("Slovak"); langNames["cs.qm"] = tr("Czech"); langNames["de.qm"] = tr("German"); langNames["el.qm"] = tr("Greek"); langNames["it.qm"] = tr("Italian"); langNames["vi.qm"] = tr("Vietnamese"); langNames["zh_CN.qm"] = tr("Chinese (China)"); langNames["sv_SE.qm"] = tr("Swedish (Sweden)"); QString full_path; QString lang; for (const auto &f : translationsDir.entryList(QDir::Files | QDir::NoSymLinks)) { full_path = QDir::toNativeSeparators( translationsDir.filePath(f) ); lang = langNames[f]; if (!lang.isEmpty()) { comboBox_LANGS->addItem(lang, full_path); if (WSGET(WS_TRANSLATION_FILE).endsWith(f)) k = i; i++; } } comboBox_LANGS->setCurrentIndex(k); #if !defined(Q_OS_WIN) QString users = CLIENT_ICONS_DIR "/user/"; #else QString users = qApp->applicationDirPath()+QDir::separator()+CLIENT_ICONS_DIR "/user/"; #endif i = 0; k = -1; for (const QString &f : QDir(users).entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) { if (!f.isEmpty()) { comboBox_USERS->addItem(f); if (f == WSGET(WS_APP_USERTHEME)) k = i; i++; } } comboBox_USERS->setCurrentIndex(k); #if !defined(Q_OS_WIN) QString icons = CLIENT_ICONS_DIR "/appl/"; #else QString icons = qApp->applicationDirPath()+QDir::separator()+CLIENT_ICONS_DIR "/appl/"; #endif i = 0; k = -1; for (const QString &f : QDir(icons).entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) { if (!f.isEmpty()) { comboBox_ICONS->addItem(f); if (f == WSGET(WS_APP_ICONTHEME)) k = i; i++; } } comboBox_ICONS->setCurrentIndex(k); #if !defined(Q_OS_WIN) QString emot = CLIENT_DATA_DIR "/emoticons/"; #else QString emot = qApp->applicationDirPath()+QDir::separator()+CLIENT_DATA_DIR "/emoticons/"; #endif comboBox_EMOT->setCurrentIndex(0); i = 0; for (const QString &f : QDir(emot).entryList(QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot)) { if (!f.isEmpty()) { comboBox_EMOT->addItem(f); if (f == WSGET(WS_APP_EMOTICON_THEME)) comboBox_EMOT->setCurrentIndex(i); i++; } } lineEdit_LANGFILE->setText(WSGET(WS_TRANSLATION_FILE)); toolButton_LANGBROWSE->setIcon(WU->getPixmap(WulforUtil::eiFOLDER_BLUE)); if (WBGET(WB_MAINWINDOW_REMEMBER)) radioButton_REMEMBER->setChecked(true); else if (WBGET(WB_MAINWINDOW_HIDE)) radioButton_HIDE->setChecked(true); else radioButton_SHOW->setChecked(true); groupBox_TRAY->setChecked(WBGET(WB_TRAY_ENABLED)); groupBox_TRAY->setEnabled(QSystemTrayIcon::isSystemTrayAvailable()); if (WBGET(WB_MAINWINDOW_USE_SIDEBAR)) comboBox_TABBAR->setCurrentIndex(2); else if (WBGET(WB_MAINWINDOW_USE_M_TABBAR)) comboBox_TABBAR->setCurrentIndex(1); else comboBox_TABBAR->setCurrentIndex(0); #if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) checkBox_ICONTHEME->setChecked(WBGET("app/use-icon-theme", false)); #endif checkBox_HIDE_ICONS_IN_MENU->setChecked(WBGET("mainwindow/dont-show-icons-in-menus", false)); // Hide options which do not work in Mac OS X, MS Windows or Haiku: #if defined (Q_OS_WIN) || defined (__HAIKU__) checkBox_ICONTHEME->hide(); #elif defined(Q_OS_MAC) checkBox_ICONTHEME->hide(); groupBox_TRAY->hide(); #endif } { //Chat tab checkBox_CHATJOINS->setChecked(WBGET(WB_CHAT_SHOW_JOINS)); checkBox_JOINSFAV->setChecked(WBGET(WB_CHAT_SHOW_JOINS_FAV)); checkBox_CHATHIDDEN->setChecked(WBGET(WB_SHOW_HIDDEN_USERS)); checkBox_IGNOREPMHUB->setChecked(BOOLSETTING(IGNORE_HUB_PMS)); checkBox_IGNOREPMBOT->setChecked(BOOLSETTING(IGNORE_BOT_PMS)); checkBox_REDIRECTPMBOT->setChecked(WBGET(WB_CHAT_REDIRECT_BOT_PMS)); checkBox_REDIRECT_UNREAD->setChecked(WBGET("hubframe/redirect-pm-to-main-chat", false)); checkBox_KEEPFOCUS->setChecked(WBGET(WB_CHAT_KEEPFOCUS)); checkBox_UNREADEN_DRAW_LINE->setChecked(WBGET("hubframe/unreaden-draw-line", true)); checkBox_USE_CTRL_ENTER->setChecked(WBGET(WB_USE_CTRL_ENTER)); checkBox_ROTATING->setChecked(WBGET(WB_CHAT_ROTATING_MSGS)); checkBox_EMOT->setChecked(WBGET(WB_APP_ENABLE_EMOTICON)); checkBox_EMOTFORCE->setChecked(WBGET(WB_APP_FORCE_EMOTICONS)); checkBox_SMILEPANEL->setChecked(WBGET(WB_CHAT_USE_SMILE_PANEL)); checkBox_HIDESMILEPANEL->setChecked(WBGET(WB_CHAT_HIDE_SMILE_PANEL)); } { //Chat (extended) tab comboBox_DBL_CLICK->setCurrentIndex(WIGET(WI_CHAT_DBLCLICK_ACT)); comboBox_MDL_CLICK->setCurrentIndex(WIGET(WI_CHAT_MDLCLICK_ACT)); comboBox_DEF_MAGNET_ACTION->setCurrentIndex(WIGET(WI_DEF_MAGNET_ACTION)); comboBox_APP_UNIT_BASE->setCurrentIndex(SETTING(APP_UNIT_BASE)); checkBox_HIGHLIGHTFAVS->setChecked(WBGET(WB_CHAT_HIGHLIGHT_FAVS)); checkBox_CHAT_SHOW_IP->setChecked(BOOLSETTING(USE_IP)); checkBox_CHAT_SHOW_CC->setChecked(BOOLSETTING(GET_USER_COUNTRY)); checkBox_BB_CODE->setChecked(WBGET("hubframe/use-bb-code", false)); lineEdit_TIMESTAMP->setText(WSGET(WS_CHAT_TIMESTAMP)); spinBox_OUT_IN_HIST->setValue(WIGET(WI_OUT_IN_HIST)); spinBox_PARAGRAPHS->setValue(WIGET(WI_CHAT_MAXPARAGRAPHS)); comboBox_CHAT_SEPARATOR->setCurrentIndex(comboBox_CHAT_SEPARATOR->findText(WSGET(WS_CHAT_SEPARATOR))); } { //Color tab QColor c; QPixmap p(10, 10); c.setNamedColor(WSGET(WS_CHAT_LOCAL_COLOR)); p.fill(c); new QListWidgetItem(p, tr("Local user"), listWidget_CHATCOLOR); c.setNamedColor(WSGET(WS_CHAT_OP_COLOR)); p.fill(c); new QListWidgetItem(p, tr("Operator"), listWidget_CHATCOLOR); c.setNamedColor(WSGET(WS_CHAT_BOT_COLOR)); p.fill(c); new QListWidgetItem(p, tr("Bot"), listWidget_CHATCOLOR); c.setNamedColor(WSGET(WS_CHAT_PRIV_LOCAL_COLOR)); p.fill(c); new QListWidgetItem(p, tr("Private: local user"), listWidget_CHATCOLOR); c.setNamedColor(WSGET(WS_CHAT_PRIV_USER_COLOR)); p.fill(c); new QListWidgetItem(p, tr("Private: user"), listWidget_CHATCOLOR); c.setNamedColor(WSGET(WS_CHAT_SAY_NICK)); p.fill(c); new QListWidgetItem(p, tr("Chat: Say nick"), listWidget_CHATCOLOR); c.setNamedColor(WSGET(WS_CHAT_STAT_COLOR)); p.fill(c); new QListWidgetItem(p, tr("Status"), listWidget_CHATCOLOR); c.setNamedColor(WSGET(WS_CHAT_USER_COLOR)); p.fill(c); new QListWidgetItem(p, tr("User"), listWidget_CHATCOLOR); c.setNamedColor(WSGET(WS_CHAT_FAVUSER_COLOR)); p.fill(c); new QListWidgetItem(p, tr("Favorite User"), listWidget_CHATCOLOR); c.setNamedColor(WSGET(WS_CHAT_TIME_COLOR)); p.fill(c); new QListWidgetItem(p, tr("Time stamp"), listWidget_CHATCOLOR); c.setNamedColor(WSGET(WS_CHAT_MSG_COLOR)); p.fill(c); new QListWidgetItem(p, tr("Message"), listWidget_CHATCOLOR); c.setNamedColor(WSGET(WS_CHAT_FIND_COLOR)); h_color = c; c.setAlpha(WIGET(WI_CHAT_FIND_COLOR_ALPHA)); p.fill(c); toolButton_H_COLOR->setIcon(p); c.setNamedColor(WSGET(WS_APP_SHARED_FILES_COLOR)); shared_files_color = c; c.setAlpha(WIGET(WI_APP_SHARED_FILES_ALPHA)); p.fill(c); toolButton_SHAREDFILES->setIcon(p); downloads_clr = qvariant_cast<QColor>(WVGET("transferview/download-bar-color", QColor())); uploads_clr = qvariant_cast<QColor>(WVGET("transferview/upload-bar-color", QColor())); if (downloads_clr.isValid()) { c = downloads_clr; p.fill(c); toolButton_DOWNLOADSCLR->setIcon(p); } if (uploads_clr.isValid()) { c = uploads_clr; p.fill(c); toolButton_UPLOADSCLR->setIcon(p); } checkBox_CHAT_BACKGROUND_COLOR->setChecked(WBGET("hubframe/change-chat-background-color", false)); toolButton_CHAT_BACKGROUND_COLOR->setEnabled(WBGET("hubframe/change-chat-background-color", false)); if (!WSGET("hubframe/chat-background-color", "").isEmpty()) { c.setNamedColor(WSGET("hubframe/chat-background-color")); chat_background_color = c; c.setAlpha(255); p.fill(c); toolButton_CHAT_BACKGROUND_COLOR->setIcon(p); } horizontalSlider_H_COLOR->setValue(WIGET(WI_CHAT_FIND_COLOR_ALPHA)); horizontalSlider_SHAREDFILES->setValue(WIGET(WI_APP_SHARED_FILES_ALPHA)); } { // Fonts tab CustomFontModel *model = new CustomFontModel(this); tableView->setModel(model); tableView->horizontalHeader()->restoreState(QByteArray::fromBase64(WSGET(WS_SETTINGS_GUI_FONTS_STATE).toUtf8())); connect(tableView, SIGNAL(doubleClicked(QModelIndex)), model, SLOT(itemDoubleClicked(QModelIndex))); connect(this, SIGNAL(saveFonts()), model, SLOT(ok())); } connect(pushButton_TEST, SIGNAL(clicked()), this, SLOT(slotTestAppTheme())); connect(comboBox_THEMES, SIGNAL(activated(int)), this, SLOT(slotThemeChanged())); connect(listWidget_CHATCOLOR, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(slotChatColorItemClicked(QListWidgetItem*))); connect(toolButton_APPFONTBROWSE, SIGNAL(clicked()), this, SLOT(slotBrowseFont())); connect(toolButton_LANGBROWSE, SIGNAL(clicked()), this, SLOT(slotBrowseLng())); connect(comboBox_LANGS, SIGNAL(activated(int)), this, SLOT(slotLngIndexChanged(int))); connect(comboBox_USERS, SIGNAL(activated(int)), this, SLOT(slotUsersChanged())); connect(comboBox_ICONS, SIGNAL(activated(int)), this, SLOT(slotIconsChanged())); connect(toolButton_H_COLOR, SIGNAL(clicked()), this, SLOT(slotGetColor())); connect(toolButton_SHAREDFILES, SIGNAL(clicked()), this, SLOT(slotGetColor())); connect(toolButton_CHAT_BACKGROUND_COLOR, SIGNAL(clicked()), this, SLOT(slotGetColor())); connect(toolButton_DOWNLOADSCLR, SIGNAL(clicked()), this, SLOT(slotGetColor())); connect(toolButton_UPLOADSCLR, SIGNAL(clicked()), this, SLOT(slotGetColor())); connect(pushButton_RESET, SIGNAL(clicked()), this, SLOT(slotResetTransferColors())); connect(horizontalSlider_H_COLOR, SIGNAL(valueChanged(int)), this, SLOT(slotSetTransparency(int))); connect(horizontalSlider_SHAREDFILES, SIGNAL(valueChanged(int)), this, SLOT(slotSetTransparency(int))); }
QString EmoticonFactory::convertEmoticons(const QString &html){ if (html.isEmpty() || list.isEmpty() || map.isEmpty()) return html; QString emoTheme = WSGET(WS_APP_EMOTICON_THEME); QString out = ""; QString buf = html; auto it = map.end(); auto begin = map.begin(); bool force_emot = WBGET(WB_APP_FORCE_EMOTICONS); if (!force_emot){ buf.prepend(" "); buf.append(" "); } while (!buf.isEmpty()){ if (buf.startsWith("<a href=") && buf.indexOf("</a>") > 0){ QString add = buf.left(buf.indexOf("</a>")) + "</a>"; out += add; buf.remove(0, add.length()); continue; } bool found = false; for (it = map.end()-1; it != begin-1; --it){ if (force_emot){ if (buf.startsWith(it.key())){ EmoticonObject *obj = it.value(); QString img = QString("<img alt=\"%1\" title=\"%1\" align=\"center\" source=\"%2/emoticon%3\" />") .arg(it.key()) .arg(emoTheme) .arg(obj->id); out += img + " "; buf.remove(0, it.key().length()); found = true; break; } } else{ if (buf.startsWith(" "+it.key()+" ")){ EmoticonObject *obj = it.value(); QString img = QString(" <img alt=\"%1\" title=\"%1\" align=\"center\" source=\"%2/emoticon%3\" /> ") .arg(it.key()) .arg(emoTheme) .arg(obj->id); out += img; buf.remove(0, it.key().length()+1); found = true; break; } else if (buf.startsWith(" "+it.key()+"\n")){ EmoticonObject *obj = it.value(); QString img = QString(" <img alt=\"%1\" title=\"%1\" align=\"center\" source=\"%2/emoticon%3\" />\n") .arg(it.key()) .arg(emoTheme) .arg(obj->id); out += img; buf.remove(0, it.key().length()+2); found = true; break; } } } if (!found){ out += buf.at(0); buf.remove(0, 1); } } if (!force_emot){ if (out.startsWith(" ")) out.remove(0, 1); if (out.endsWith(" ")) out.remove(out.length()-1, 1); } return out; }
void SettingsNotification::ok(){ {//Text WBSET(WB_NOTIFY_ENABLED, groupBox->isChecked()); WBSET(WB_NOTIFY_CH_ICON_ALWAYS, checkBox_MWVISIBLE->isChecked()); WBSET(WB_NOTIFY_SHOW_ON_ACTIVE, checkBox_MWACTIVE->isChecked()); WBSET(WB_EXIT_CONFIRM, checkBox_EXIT_CONFIRM->isChecked()); if (WBGET(WB_TRAY_ENABLED) != checkBox_TRAY->isChecked()){ WBSET(WB_TRAY_ENABLED, checkBox_TRAY->isChecked()); Notify->enableTray(WBGET(WB_TRAY_ENABLED)); } unsigned emap = 0; if (checkBox_ANY->isChecked()) emap |= Notification::ANY; if (checkBox_TRDONE->isChecked()) emap |= Notification::TRANSFER; if (checkBox_NICKSAY->isChecked()) emap |= Notification::NICKSAY; if (checkBox_PM->isChecked()) emap |= Notification::PM; WISET(WI_NOTIFY_EVENTMAP, emap); WISET(WI_NOTIFY_MODULE, comboBox->currentIndex()); Notification::getInstance()->switchModule(comboBox->currentIndex()); } {//Sound QString sounds = ""; sounds += lineEdit_SNDNICKSAY->text() + "\n"; sounds += lineEdit_SNDPM->text() + "\n"; sounds += lineEdit_SNDTRDONE->text(); WSSET(WS_NOTIFY_SOUNDS, sounds.toAscii().toBase64()); WBSET(WB_NOTIFY_SND_ENABLED, groupBox_SND->isChecked()); Notification::getInstance()->reloadSounds(); if (WBGET(WB_NOTIFY_SND_EXTERNAL)) WSSET(WS_NOTIFY_SND_CMD, lineEdit_SNDCMD->text()); unsigned emap = 0; if (groupBox_TR->isChecked()) emap |= Notification::TRANSFER; if (groupBox_NICK->isChecked()) emap |= Notification::NICKSAY; if (groupBox_PM->isChecked()) emap |= Notification::PM; WISET(WI_NOTIFY_SNDMAP, emap); } WulforSettings::getInstance()->save(); }