void KviMainWindow::restoreModuleExtensionToolBars() { for(auto szEntry : KVI_OPTION_STRINGLIST(KviOption_stringlistModuleExtensionToolbars)) { int idx = szEntry.indexOf(':'); if(idx != -1) { QString szMod = szEntry.left(idx); szEntry.remove(0, idx + 1); g_pModuleExtensionManager->allocateExtension("toolbar", KviCString(szEntry), firstConsole(), nullptr, nullptr, szMod); } } }
static void spellchecker_reload_dicts() { while (!g_pEnchantDicts->isEmpty()) enchant_broker_free_dict(g_pEnchantBroker, g_pEnchantDicts->takeFirst()); const QStringList& wantedDictionaries = KVI_OPTION_STRINGLIST(KviOption_stringlistSpellCheckerDictionaries); foreach(QString szLang, wantedDictionaries) { EnchantDict* pDict = enchant_broker_request_dict(g_pEnchantBroker, szLang.toUtf8().data()); if (pDict) { g_pEnchantDicts->append(pDict); } else { qDebug("Can't load spellchecker dictionary %s: %s", szLang.toUtf8().data(), enchant_broker_get_error(g_pEnchantBroker)); } }
void KviMainWindow::restoreModuleExtensionToolBars() { for(QStringList::Iterator it = KVI_OPTION_STRINGLIST(KviOption_stringlistModuleExtensionToolbars).begin();it != KVI_OPTION_STRINGLIST(KviOption_stringlistModuleExtensionToolbars).end();++it) { QString szEntry = *it; int idx = szEntry.indexOf(':'); if(idx != -1) { QString szMod = szEntry.left(idx); szEntry.remove(0,idx + 1); g_pModuleExtensionManager->allocateExtension("toolbar",KviCString(szEntry),firstConsole(),0,0,szMod); } } }
bool KviApplication::findImageInImageSearchPath(QString & szRetPath, const QString & filename) { // first lookup the user defined paths for(auto & it : KVI_OPTION_STRINGLIST(KviOption_stringlistImageSearchPaths)) { szRetPath = it; KviQString::ensureLastCharIs(szRetPath, KVI_PATH_SEPARATOR_CHAR); szRetPath.append(filename); //qDebug("LOOK FOR %s",szRetPath.ptr()); if(KviFileUtils::fileExists(szRetPath)) return true; } return false; }
void OptionsWidget_textEncoding::commit() { int idx = m_pTextEncodingCombo->currentIndex(); if(idx <= 0) { // guess from locale KVI_OPTION_STRING(KviOption_stringDefaultTextEncoding) = ""; } else { KVI_OPTION_STRING(KviOption_stringDefaultTextEncoding) = m_pTextEncodingCombo->itemText(idx); } idx = m_pSrvEncodingCombo->currentIndex(); if(idx <= 0) { // guess from locale KVI_OPTION_STRING(KviOption_stringDefaultSrvEncoding) = ""; } else { KVI_OPTION_STRING(KviOption_stringDefaultSrvEncoding) = m_pSrvEncodingCombo->itemText(idx); } idx=m_pForcedLocaleCombo->currentIndex(); QString szLangFile; g_pApp->getLocalKvircDirectory(szLangFile,KviApplication::None,KVI_FORCE_LOCALE_FILE_NAME); if(idx==0) { if(KviFileUtils::fileExists(szLangFile)) KviFileUtils::removeFile(szLangFile); } else { g_szPrevSettedLocale=m_pForcedLocaleCombo->itemText(idx); if(!KviFileUtils::writeFile(szLangFile,m_pForcedLocaleCombo->itemText(idx))) { QMessageBox::critical(this,"KVIrc",__tr2qs_ctx("Unable to write language information to","options")+"\n"+szLangFile,__tr2qs_ctx("Ok","options")); } } /* if(!KviQString::equalCI(m_pForcedLocaleCombo->text(idx),m_szLanguage)) QMessageBox::information(0,"KVIrc",__tr2qs_ctx("You need to restart KVirc to apply a language changing","options"),QMessageBox::Ok);*/ #ifdef COMPILE_ENCHANT_SUPPORT QStringList wantedDictionaries; for (int i = 0; i < m_pSpellCheckerDictionaries->rowCount(); ++i) { if (m_pSpellCheckerDictionaries->item(i,0)->checkState() == Qt::Checked) { wantedDictionaries << m_pSpellCheckerDictionaries->item(i,0)->text(); } } KVI_OPTION_STRINGLIST(KviOption_stringlistSpellCheckerDictionaries) = wantedDictionaries; KviKvsScript::run("spellchecker.reloadDictionaries", NULL); #endif }
OptionsWidget_textEncoding::OptionsWidget_textEncoding(QWidget * parent) : KviOptionsWidget(parent) { setObjectName("textencoding_options_widget"); createLayout(); KviTalGroupBox* gbox = addGroupBox(0,0,0,0,Qt::Horizontal,__tr2qs_ctx("Encoding","options")); QGridLayout* grid = new QGridLayout; gbox->setLayout(grid); //server encoding grid->addWidget(addLabel(gbox,__tr2qs_ctx("Default server encoding:","options")),0,0); m_pSrvEncodingCombo = new QComboBox(gbox); grid->addWidget(m_pSrvEncodingCombo,0,1); m_pSrvEncodingCombo->addItem(__tr2qs_ctx("Use Language Encoding","options")); //text encoding grid->addWidget(addLabel(gbox,__tr2qs_ctx("Default text encoding:","options")),1,0); m_pTextEncodingCombo = new QComboBox(gbox); grid->addWidget(m_pTextEncodingCombo,1,1); m_pTextEncodingCombo->addItem(__tr2qs_ctx("Use Language Encoding","options")); //common between text and server encoding int i = 0; int iTextMatch = 0, iSrvMatch=0; KviLocale::EncodingDescription * d = KviLocale::instance()->encodingDescription(i); while(d->pcName) { if(KviQString::equalCI(d->pcName,KVI_OPTION_STRING(KviOption_stringDefaultTextEncoding))) iTextMatch = i + 1; if(KviQString::equalCI(d->pcName,KVI_OPTION_STRING(KviOption_stringDefaultSrvEncoding))) iSrvMatch = i + 1; m_pTextEncodingCombo->insertItem(m_pTextEncodingCombo->count(),d->pcName); m_pSrvEncodingCombo->insertItem(m_pSrvEncodingCombo->count(),d->pcName); i++; d = KviLocale::instance()->encodingDescription(i); } m_pTextEncodingCombo->setCurrentIndex(iTextMatch); m_pSrvEncodingCombo->setCurrentIndex(iSrvMatch); gbox = addGroupBox(0,1,0,1,Qt::Horizontal,__tr2qs_ctx("Language","options")); grid = new QGridLayout; gbox->setLayout(grid); grid->addWidget(addLabel(gbox,__tr2qs_ctx("Force language:","options")),0,0); m_pForcedLocaleCombo = new QComboBox(gbox); grid->addWidget(m_pForcedLocaleCombo,0,1); grid->addWidget(addLabel(gbox,__tr2qs_ctx("<b>Note:</b> You must restart KVIrc to apply any language changes","options")),1,0,1,2); m_pForcedLocaleCombo->addItem(__tr2qs_ctx("Automatic detection","options")); m_pForcedLocaleCombo->addItem(__tr2qs_ctx("en","options")); QString szLangFile; g_pApp->getLocalKvircDirectory(szLangFile,KviApplication::None,KVI_FORCE_LOCALE_FILE_NAME); bool bIsDefaultLocale = !KviFileUtils::fileExists(szLangFile); //We Have setted locale, but not restarted kvirc if(!g_szPrevSettedLocale.isEmpty()) m_szLanguage = g_szPrevSettedLocale; else m_szLanguage = KviLocale::instance()->localeName(); QString szLocaleDir; g_pApp->getGlobalKvircDirectory(szLocaleDir,KviApplication::Locale); QStringList list=QDir(szLocaleDir).entryList(QStringList("kvirc_*.mo"),QDir::Files); i = 0; int iMatch = 0; for(QStringList::Iterator it = list.begin(); it != list.end(); ++it) { QString szTmp=*it; szTmp.replace("kvirc_",""); szTmp.replace(".mo",""); m_pForcedLocaleCombo->insertItem(m_pForcedLocaleCombo->count(),szTmp); if(KviQString::equalCI(szTmp,m_szLanguage)) iMatch = i + 2; i++; } if(bIsDefaultLocale) m_pForcedLocaleCombo->setCurrentIndex(0); else if(KviQString::equalCI(m_szLanguage,"en")) m_pForcedLocaleCombo->setCurrentIndex(1); else m_pForcedLocaleCombo->setCurrentIndex(iMatch); #ifdef COMPILE_ENCHANT_SUPPORT { gbox = addGroupBox(0,2,0,2,Qt::Horizontal,__tr2qs_ctx("Spell Checker Dictionaries","options")); KviKvsVariant availableDictionaries; KviKvsScript::evaluate("$spellchecker.availableDictionaries", NULL, NULL, &availableDictionaries); const KviPointerHashTable<QString, KviKvsVariant>* hashTable = availableDictionaries.hash()->dict(); KviPointerHashTableIterator<QString, KviKvsVariant> iter(*hashTable); QMap<QString, QString> dictMap; for (bool b = iter.moveFirst(); b; b = iter.moveNext()) { QString szDescription; iter.current()->asString(szDescription); dictMap[iter.currentKey()] = szDescription; } m_pSpellCheckerDictionaries = new QTableWidget(gbox); m_pSpellCheckerDictionaries->setRowCount(dictMap.size()); m_pSpellCheckerDictionaries->setColumnCount(2); QStringList header; header << __tr2qs_ctx("Language code", "options"); header << __tr2qs_ctx("Provided by", "options"); m_pSpellCheckerDictionaries->setHorizontalHeaderLabels(header); #if (QT_VERSION >= 0x050000) m_pSpellCheckerDictionaries->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); #else m_pSpellCheckerDictionaries->horizontalHeader()->setResizeMode(QHeaderView::Stretch); #endif m_pSpellCheckerDictionaries->setSelectionBehavior(QAbstractItemView::SelectRows); m_pSpellCheckerDictionaries->setSelectionMode(QAbstractItemView::SingleSelection); m_pSpellCheckerDictionaries->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); int row = 0; for (QMap<QString, QString>::iterator it = dictMap.begin(); it != dictMap.end(); ++it, ++row) { QTableWidgetItem* itemLang = new QTableWidgetItem(it.key()); itemLang->setCheckState(KVI_OPTION_STRINGLIST(KviOption_stringlistSpellCheckerDictionaries).contains(it.key()) ? Qt::Checked : Qt::Unchecked); itemLang->setFlags(itemLang->flags() & ~Qt::ItemIsEditable); m_pSpellCheckerDictionaries->setItem(row,0,itemLang); QTableWidgetItem* itemDesc = new QTableWidgetItem(it.value()); itemDesc->setFlags(itemDesc->flags() & ~Qt::ItemIsEditable); m_pSpellCheckerDictionaries->setItem(row,1,itemDesc); } m_pSpellCheckerDictionaries->resizeColumnsToContents(); m_pSpellCheckerDictionaries->resizeRowsToContents(); } #else addRowSpacer(0,2,0,2); #endif }