📄 kwifimanager_kcmodule.cpp
字号:
temp2 += "s:"; temp2 += configs->crypto4[x]; temp[2] = "[4]"; temp[1] = temp2.latin1 (); std::cerr << "Crypto key 4: " << temp[1] << "\n"; set_info (skfd, temp, 3, used_interface.latin1 ()); (configs->crypto_mode[x] == OPEN) ? temp[1] = "open" : temp[1] = "restricted"; std::cerr << "Operation mode: " << temp[1] << "\n"; set_info (skfd, temp, 2, used_interface.latin1 ()); temp2 = ""; temp2 = "[" + configs->active_key_string[x] + "]"; temp[1] = temp2.latin1 (); std::cerr << "Active key: " << configs->active_key_string[x] << "\n"; set_info (skfd, temp, 2, used_interface.latin1 ()); temp[1] = "on"; std::cerr << "Encryption: ON" << "\n"; set_info (skfd, temp, 2, used_interface.latin1 ()); } else { temp[1] = "off"; std::cerr << "Encryption: OFF" << "\n"; set_info (skfd, temp, 2, used_interface.latin1 ()); }; temp[0] = "power"; if (configs->pm_enabled[x] == true) { temp[1] = "period"; temp2 = configs->sleep_time_string[x] + "m"; temp[2] = temp2.latin1 (); std::cerr << "Sleep time: " << configs->sleep_time_string[x] << "\n"; set_info (skfd, temp, 3, used_interface.latin1 ()); temp[1] = "timeout"; temp2 = configs->wake_time_string[x] + "m"; temp[2] = temp2.latin1 (); std::cerr << "Wake time: " << configs->wake_time_string[x] << "\n"; set_info (skfd, temp, 3, used_interface.latin1 ()); switch (configs->packet[x]) { case UNI: temp[1] = "unicast"; break; case MULTI: temp[1] = "multicast"; break; case BOTH: temp[1] = "all"; break; }; std::cerr << "Listening to: " << temp[1] << "\n"; set_info (skfd, temp, 2, used_interface.latin1 ()); } else { temp[1] = "off"; std::cerr << "Power Management: OFF" << "\n"; set_info (skfd, temp, 2, used_interface.latin1 ()); }; temp[0] = "rate"; switch (configs->bitrate[x]) { case AUTO: temp[1] = "auto"; break; case M1: temp[1] = "1M"; break; case M2: temp[1] = "2M"; break; case M55: temp[1] = "5.5M"; break; case M11: temp[1] = "11M"; break; }; std::cerr << "Bitrate: " << temp[1] << "\n"; set_info (skfd, temp, 2, used_interface.latin1 ()); KProcess ifcon2; ifcon2 << "ifconfig"; ifcon2 << used_interface.latin1 () << "up"; std::cerr << "Restarting interface via ifconfig\n"; ifcon2.start (KProcess::Block); KProcess scripty; QStringList args = QStringList::split(" ",configs->script_name[x]); for (QStringList::Iterator it=args.begin(); it!=args.end(); ++it) { scripty << *it; std::cerr << *it << " "; } std::cerr << "Starting to execute user-defined script.\n"; scripty.start (KProcess::DontCare);}voidKWifimanager_KCModule::load (){ defaults (); KStandardDirs finder; QString kdedir = finder.findResourceDir ("data", "kwifimanager/config/kwifimanagerrc"); if (kdedir == "") { kdedir = finder.findResourceDir ("data", "kwifimanager/pics/offline.png") + "kwifimanager/config/"; QDir erzeuger; erzeuger.mkdir(kdedir); } else { kdedir += "kwifimanager/config/"; }; std::cerr << kdedir << "\n"; KSimpleConfig *conffile = new KSimpleConfig (kdedir + "kwifimanagerrc", true); conffile->setGroup ("General"); use_preset_config = conffile->readBoolEntry ("Use preset configuration", false); preset_config_to_use = conffile->readNumEntry ("Configuration to use", 1); interface_to_use = conffile->readEntry ("Interface", ""); for (int i = 1; i < 5; i++) { QString temp = "Configuration %1"; temp = temp.arg (i); conffile->setGroup (temp); KWifimanager_KCModule::configs->script_name[i] = conffile->readEntry ("Script Name", ""); KWifimanager_KCModule::configs->net_name[i] = conffile->readEntry ("Network Name", ""); KWifimanager_KCModule::configs->managed[i] = conffile->readBoolEntry ("Infrastructure", false); KWifimanager_KCModule::configs->crypto_enabled[i] = conffile->readBoolEntry ("Use cryptography", false); KWifimanager_KCModule::configs->active_crypto_key[i] = conffile->readNumEntry ("Active crypto key", 0); KWifimanager_KCModule::configs->active_key_string[i] = "%1"; KWifimanager_KCModule::configs->active_key_string[i] = KWifimanager_KCModule::configs->active_key_string[i].arg (KWifimanager_KCModule::configs->active_crypto_key[i]); KWifimanager_KCModule::configs->crypto1[i] = conffile->readEntry ("Key 1", ""); KWifimanager_KCModule::configs->crypto_is_string1[i] = conffile->readBoolEntry ("Key 1 is string", false); KWifimanager_KCModule::configs->crypto2[i] = conffile->readEntry ("Key 2", ""); KWifimanager_KCModule::configs->crypto_is_string2[i] = conffile->readBoolEntry ("Key 2 is string", false); KWifimanager_KCModule::configs->crypto3[i] = conffile->readEntry ("Key 3", ""); KWifimanager_KCModule::configs->crypto_is_string3[i] = conffile->readBoolEntry ("Key 3 is string", false); KWifimanager_KCModule::configs->crypto4[i] = conffile->readEntry ("Key 4", ""); KWifimanager_KCModule::configs->crypto_is_string4[i] = conffile->readBoolEntry ("Key 4 is string", false); (conffile->readEntry ("Crypto mode", "OPEN") == "OPEN" ? KWifimanager_KCModule::configs->crypto_mode[i] = OPEN : KWifimanager_KCModule::configs->crypto_mode[i] = RESTRICTED); KWifimanager_KCModule::configs->pm_enabled[i] = conffile->readBoolEntry ("PM enabled", false); KWifimanager_KCModule::configs->sleep_time[i] = conffile->readNumEntry ("Sleep time", 0); KWifimanager_KCModule::configs->wake_time[i] = conffile->readNumEntry ("Wake time", 0); temp = conffile->readEntry ("Speed", "AUTO"); if (temp == "AUTO") { KWifimanager_KCModule::configs->bitrate[i] = AUTO; } else if (temp == "M1") { KWifimanager_KCModule::configs->bitrate[i] = M1; } else if (temp == "M2") { KWifimanager_KCModule::configs->bitrate[i] = M2; } else if (temp == "M55") { KWifimanager_KCModule::configs->bitrate[i] = M55; } else KWifimanager_KCModule::configs->bitrate[i] = M11; temp = conffile->readEntry ("Packets", "BOTH"); if (temp == "UNI") { KWifimanager_KCModule::configs->packet[i] = UNI; } else if (temp == "MULTI") { KWifimanager_KCModule::configs->packet[i] = MULTI; } else KWifimanager_KCModule::configs->packet[i] = BOTH; }; emit changed (false);}voidKWifimanager_KCModule::defaults (){ use_preset_config = false; preset_config_to_use = 1; interface_to_use = ""; for (int i = 1; i < 5; i++) { KWifimanager_KCModule::configs->script_name[i] = ""; KWifimanager_KCModule::configs->net_name[i] = ""; KWifimanager_KCModule::configs->managed[i] = false; KWifimanager_KCModule::configs->crypto_enabled[i] = false; KWifimanager_KCModule::configs->active_crypto_key[i] = 0; KWifimanager_KCModule::configs->active_key_string[i] = "0"; KWifimanager_KCModule::configs->crypto1[i] = ""; KWifimanager_KCModule::configs->crypto2[i] = ""; KWifimanager_KCModule::configs->crypto3[i] = ""; KWifimanager_KCModule::configs->crypto4[i] = ""; KWifimanager_KCModule::configs->crypto_is_string1[i] = false; KWifimanager_KCModule::configs->crypto_is_string2[i] = false; KWifimanager_KCModule::configs->crypto_is_string3[i] = false; KWifimanager_KCModule::configs->crypto_is_string4[i] = false; KWifimanager_KCModule::configs->crypto_mode[i] = OPEN; KWifimanager_KCModule::configs->pm_enabled[i] = false; KWifimanager_KCModule::configs->sleep_time[i] = 0; KWifimanager_KCModule::configs->sleep_time_string[i] = "0"; KWifimanager_KCModule::configs->wake_time_string[i] = "0"; KWifimanager_KCModule::configs->wake_time[i] = 0; KWifimanager_KCModule::configs->bitrate[i] = AUTO; KWifimanager_KCModule::configs->packet[i] = BOTH; emit changed (true); };}voidKWifimanager_KCModule::save (){ config1->saveData (1); config2->saveData (2); config3->saveData (3); config4->saveData (4); config_gen->saveData (); KStandardDirs finder; QString kdedir = finder.findResourceDir ("data", "kwifimanager/config/"); kdedir += "kwifimanager/config/"; KSimpleConfig *conffile = new KSimpleConfig (kdedir + "kwifimanagerrc", false); std::cerr << kdedir << "\n"; conffile->setGroup ("General"); conffile->writeEntry ("Use preset configuration", use_preset_config); conffile->writeEntry ("Configuration to use", preset_config_to_use); conffile->writeEntry ("Interface", interface_to_use); for (int i = 1; i < 5; i++) { QString temp = "Configuration %1"; temp = temp.arg (i); conffile->setGroup (temp); conffile->writeEntry ("Script Name", KWifimanager_KCModule::configs->script_name[i]); conffile->writeEntry ("Network Name", KWifimanager_KCModule::configs->net_name[i]); conffile->writeEntry ("Infrastructure", KWifimanager_KCModule::configs->managed[i]); conffile->writeEntry ("Use cryptography", KWifimanager_KCModule::configs->crypto_enabled[i]); conffile->writeEntry ("Active crypto key", KWifimanager_KCModule::configs->active_crypto_key[i]); conffile->writeEntry ("Key 1", KWifimanager_KCModule::configs->crypto1[i]); conffile->writeEntry ("Key 1 is string", KWifimanager_KCModule::configs->crypto_is_string1[i]); conffile->writeEntry ("Key 2", KWifimanager_KCModule::configs->crypto2[i]); conffile->writeEntry ("Key 2 is string", KWifimanager_KCModule::configs->crypto_is_string2[i]); conffile->writeEntry ("Key 3", KWifimanager_KCModule::configs->crypto3[i]); conffile->writeEntry ("Key 3 is string", KWifimanager_KCModule::configs->crypto_is_string3[i]); conffile->writeEntry ("Key 4", KWifimanager_KCModule::configs->crypto4[i]); conffile->writeEntry ("Key 4 is string", KWifimanager_KCModule::configs->crypto_is_string4[i]); conffile->writeEntry ("Crypto mode", (KWifimanager_KCModule::configs->crypto_mode[i] == "OPEN" ? "OPEN" : "RESTRICTED")); conffile->writeEntry ("PM enabled", KWifimanager_KCModule::configs->pm_enabled[i]); conffile->writeEntry ("Sleep time", KWifimanager_KCModule::configs->sleep_time[i]); conffile->writeEntry ("Wake time", KWifimanager_KCModule::configs->wake_time[i]); switch (KWifimanager_KCModule::configs->bitrate[i]) { case AUTO: conffile->writeEntry ("Speed", "AUTO"); break; case M1: conffile->writeEntry ("Speed", "M1"); break; case M2: conffile->writeEntry ("Speed", "M2"); break; case M55: conffile->writeEntry ("Speed", "M55"); break; case M11: conffile->writeEntry ("Speed", "M11"); break; }; switch (KWifimanager_KCModule::configs->packet[i]) { case UNI: conffile->writeEntry ("Packets", "UNI"); break; case MULTI: conffile->writeEntry ("Packets", "MULTI"); break; case BOTH: conffile->writeEntry ("Packets", "BOTH"); break; }; }; conffile->sync (); emit changed (false); KWifimanager_KCModule::init ();}intKWifimanager_KCModule::buttons (){ return 61;}voidKWifimanager_KCModule::configChanged (){ emit changed (true);}QString KWifimanager_KCModule::quickHelp () const{ return i18n ("Helpful information about the kwifimanager_kcmodule module.");}// ------------------------------------------------------------------------voidKWifimanager_KCModule::init (){ KStandardDirs finder; QString kdedir = finder.findResourceDir ("data", "kwifimanager/config/kwifimanagerrc"); if (kdedir == "") { kdedir = finder.findResourceDir ("data", "kwifimanager/pics/offline.png") + "kwifimanager/config/"; QDir erzeuger; erzeuger.mkdir(kdedir); } else { kdedir += "kwifimanager/config/"; }; KSimpleConfig *conffile = new KSimpleConfig (kdedir + "kwifimanagerrc", true); conffile->setGroup ("General"); use_preset_config = conffile->readBoolEntry ("Use preset configuration", false); if (use_preset_config) { preset_config_to_use = conffile->readNumEntry ("Configuration to use", 1); interface_to_use = conffile->readEntry ("Interface", ""); QString temp = "Configuration %1"; temp = temp.arg (preset_config_to_use + 1); int i = preset_config_to_use + 1; conffile->setGroup (temp); KWifimanager_KCModule::configs->script_name[i] = conffile->readEntry ("Script Name", ""); KWifimanager_KCModule::configs->net_name[i] = conffile->readEntry ("Network Name", ""); KWifimanager_KCModule::configs->managed[i] = conffile->readBoolEntry ("Infrastructure", false); KWifimanager_KCModule::configs->crypto_enabled[i] = conffile->readBoolEntry ("Use cryptography", false); KWifimanager_KCModule::configs->active_crypto_key[i] = conffile->readNumEntry ("Active crypto key", 0); KWifimanager_KCModule::configs->active_key_string[i] = "%1"; KWifimanager_KCModule::configs->active_key_string[i] = KWifimanager_KCModule::configs->active_key_string[i].arg (KWifimanager_KCModule::configs->active_crypto_key[i]); KWifimanager_KCModule::configs->crypto1[i] = conffile->readEntry ("Key 1", ""); KWifimanager_KCModule::configs->crypto_is_string1[i] = conffile->readBoolEntry ("Key 1 is string", false); KWifimanager_KCModule::configs->crypto2[i] = conffile->readEntry ("Key 2", ""); KWifimanager_KCModule::configs->crypto_is_string2[i] = conffile->readBoolEntry ("Key 2 is string", false); KWifimanager_KCModule::configs->crypto3[i] = conffile->readEntry ("Key 3", ""); KWifimanager_KCModule::configs->crypto_is_string3[i] = conffile->readBoolEntry ("Key 3 is string", false); KWifimanager_KCModule::configs->crypto4[i] = conffile->readEntry ("Key 4", ""); KWifimanager_KCModule::configs->crypto_is_string4[i] = conffile->readBoolEntry ("Key 4 is string", false); (conffile->readEntry ("Crypto mode", "OPEN") == "OPEN" ? KWifimanager_KCModule::configs->crypto_mode[i] = OPEN : KWifimanager_KCModule::configs->crypto_mode[i] = RESTRICTED); KWifimanager_KCModule::configs->pm_enabled[i] = conffile->readBoolEntry ("PM enabled", false); KWifimanager_KCModule::configs->sleep_time[i] = conffile->readNumEntry ("Sleep time", 0); KWifimanager_KCModule::configs->wake_time[i] = conffile->readNumEntry ("Wake time", 0); temp = conffile->readEntry ("Speed", "AUTO"); if (temp == "AUTO") { KWifimanager_KCModule::configs->bitrate[i] = AUTO; } else if (temp == "M1") { KWifimanager_KCModule::configs->bitrate[i] = M1; } else if (temp == "M2") { KWifimanager_KCModule::configs->bitrate[i] = M2; } else if (temp == "M55") { KWifimanager_KCModule::configs->bitrate[i] = M55; } else KWifimanager_KCModule::configs->bitrate[i] = M11; temp = conffile->readEntry ("Packets", "BOTH"); if (temp == "UNI") { KWifimanager_KCModule::configs->packet[i] = UNI; } else if (temp == "MULTI") { KWifimanager_KCModule::configs->packet[i] = MULTI; } else KWifimanager_KCModule::configs->packet[i] = BOTH; KWifimanager_KCModule::changeConfig (preset_config_to_use + 1, iw_sockets_open (), interface_to_use); };};extern "C"{/* KCModule *create_kwifimanager_kcmodule (QWidget * parent, const char *name) { KGlobal::locale ()->insertCatalogue ("kwifimanager"); return new KWifimanager_KCModule (parent, name); };*/void *init_libkcm_kwifimanager_kcmodule(QWidget* parent, const char* name) { KWifimanager_KCModule::init (); std::cerr << "INIT completed...\n"; KLocale::setMainCatalogue("kwifimanager"); KGlobal::locale()->insertCatalogue("kwifimanager"); return new KWiFiFactory("kcm_kwifimanager_kcmodule"); std::cerr << "Returned new object\n"; } ;}#include "kwifimanager_kcmodule.moc"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -