⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oxim-setup.ui.h

📁 linux 下的 oxim 输入法,简单易用.
💻 H
📖 第 1 页 / 共 2 页
字号:
void OXIM_Setup::RunGenCinForm( int idx, iminfo_t *imp ){    GenCin form;    settings_t *settings = NULL;        form.IMName->setText(imp->aliasname ? trUtf8(imp->aliasname) : trUtf8(imp->inpname));    form.imname = imp->objname;    if (imp->settings)    {	settings = imp->settings;	int yesno;	// AutoCompose	if (oxim_setting_GetBoolean(settings, "AutoCompose", &yesno))	{	    form.AutoCompose->setChecked(yesno);	}		// AutoUpChar	if (oxim_setting_GetBoolean(settings, "AutoUpChar", &yesno))	{	    form.AutoUpChar->setChecked(yesno);	}		// AutoFullUp	if (oxim_setting_GetBoolean(settings, "AutoFullUp", &yesno))	{	    form.AutoFullUp->setChecked(yesno);	}		// SpaceAutoUp	if (oxim_setting_GetBoolean(settings, "SpaceAutoUp", &yesno))	{	    form.SpaceAutoUp->setChecked(yesno);	}		// SelectKeyShift	if (oxim_setting_GetBoolean(settings, "SelectKeyShift", &yesno))	{	    form.SelectKeyShift->setChecked(yesno);	}		// SpaceIgnore	if (oxim_setting_GetBoolean(settings, "SpaceIgnore", &yesno))	{	    if (yesno)		form.SpaceIgnoreYes->setChecked(true);	    else		form.SpaceIgnoreNo->setChecked(true);	}	// SpaceReset	if (oxim_setting_GetBoolean(settings, "SpaceReset", &yesno))	{	    form.SpaceReset->setChecked(yesno);	}		// WildEnable	if (oxim_setting_GetBoolean(settings, "WildEnable", &yesno))	{	    form.WildEnable->setChecked(yesno);	}		// 設定 EndKey	if (oxim_setting_GetBoolean(settings, "EndKey", &yesno))	{	    form.EndKey->setChecked(yesno);	}	// 設定特殊字根	char *spstroke;	if (oxim_setting_GetString(settings, "DisableSelectList", &spstroke))	{	    if (strcasecmp(spstroke, "None") != 0)		form.DisableSelectList->setText(spstroke);	}    }    int isOK = form.exec();    if (!isOK) //  按下取消或直接關掉視窗    {	return;    }    settings = oxim_settings_create();    // AutoCompose    oxim_settings_add_key_value(settings, "AutoCompose",	form.AutoCompose->isChecked() ? "Yes" : "No");    // AutoUpChar    oxim_settings_add_key_value(settings, "AutoUpChar",	form.AutoUpChar->isChecked() ? "Yes" : "No");    // AutoFullUp    oxim_settings_add_key_value(settings, "AutoFullUp",	form.AutoFullUp->isChecked() ? "Yes" : "No");    // SpaceAutoUp    oxim_settings_add_key_value(settings, "SpaceAutoUp",	form.SpaceAutoUp->isChecked() ? "Yes" : "No");    // SelectKeyShift    oxim_settings_add_key_value(settings, "SelectKeyShift",	form.SelectKeyShift->isChecked() ? "Yes" : "No");    // SpaceIgnore    oxim_settings_add_key_value(settings, "SpaceIgnore",	form.SpaceIgnoreYes->isChecked() ? "Yes" : "No");    // SpaceReset    oxim_settings_add_key_value(settings, "SpaceReset",	form.SpaceReset->isChecked() ? "Yes" : "No");    // WildEnable    oxim_settings_add_key_value(settings, "WildEnable",	form.WildEnable->isChecked() ? "Yes" : "No");    // EndKey    oxim_settings_add_key_value(settings, "EndKey",	form.EndKey->isChecked() ? "Yes" : "No");    // DisableSelectList    QString dstroke = form.DisableSelectList->text().stripWhiteSpace();    oxim_settings_add_key_value(settings, "DisableSelectList",	dstroke.length() ? dstroke.utf8().data() : "None");        oxim_set_IMSettings(idx, settings);    oxim_settings_destroy(settings);}/*  * 新酷音輸入法屬性  */void OXIM_Setup::RunChewing( int idx, iminfo_t *imp ){    Chewing form;    settings_t *settings = NULL;        if (imp->settings)    {	settings = imp->settings;	int number;	if (oxim_setting_GetInteger(settings, "KeyMap", &number))	{	    switch (number)	    {	    case 1:		form.KeyMap1->setChecked(true);		break;	    case 2:		form.KeyMap2->setChecked(true);		break;	    case 3:		form.KeyMap3->setChecked(true);		break;	    case 4:		form.KeyMap4->setChecked(true);		break;	    case 5:		form.KeyMap5->setChecked(true);		break;	    case 6:		form.KeyMap6->setChecked(true);		break;	    case 7:		form.KeyMap7->setChecked(true);		break;	    case 8:		form.KeyMap8->setChecked(true);		break;	    default:		form.KeyMap0->setChecked(true);	    }	}	//	if (oxim_setting_GetInteger(settings, "SelectionKeys", &number))	{	    switch (number)	    {	    case 1:		form.SelectionKeys1->setChecked(true);		break;	    case 2:		form.SelectionKeys2->setChecked(true);		break;	    case 3:		form.SelectionKeys3->setChecked(true);		break;	    default:		form.SelectionKeys0->setChecked(true);	    }	}	//	if (oxim_setting_GetInteger(settings, "CapsLockMode", &number))	{	    if (number != 0)		form.CapsLockMode1->setChecked(true);	}    }    int isOk = form.exec();        if (!isOk)	return;    settings = oxim_settings_create();    if (form.KeyMap0->isChecked())	oxim_settings_add_key_value(settings, "KeyMap", "0");    else if (form.KeyMap1->isChecked())	oxim_settings_add_key_value(settings, "KeyMap", "1");    else if (form.KeyMap2->isChecked())	oxim_settings_add_key_value(settings, "KeyMap", "2");    else if (form.KeyMap3->isChecked())	oxim_settings_add_key_value(settings, "KeyMap", "3");    else if (form.KeyMap4->isChecked())	oxim_settings_add_key_value(settings, "KeyMap", "4");    else if (form.KeyMap5->isChecked())	oxim_settings_add_key_value(settings, "KeyMap", "5");    else if (form.KeyMap6->isChecked())	oxim_settings_add_key_value(settings, "KeyMap", "6");    else if (form.KeyMap7->isChecked())	oxim_settings_add_key_value(settings, "KeyMap", "7");    else if (form.KeyMap8->isChecked())	oxim_settings_add_key_value(settings, "KeyMap", "8");        if (form.SelectionKeys0->isChecked())	oxim_settings_add_key_value(settings, "SelectionKeys", "0");    else if (form.SelectionKeys1->isChecked())	oxim_settings_add_key_value(settings, "SelectionKeys", "1");    else if (form.SelectionKeys2->isChecked())	oxim_settings_add_key_value(settings, "SelectionKeys", "2");    else if (form.SelectionKeys3->isChecked())	oxim_settings_add_key_value(settings, "SelectionKeys", "3");    if (form.CapsLockMode0->isChecked())	oxim_settings_add_key_value(settings, "CapsLockMode", "0");    else	oxim_settings_add_key_value(settings, "CapsLockMode", "1");    oxim_set_IMSettings(idx, settings);    oxim_settings_destroy(settings);}/*  * 安裝輸入法  */void OXIM_Setup::AddIM_clicked(){    QString tables_dir(QString::fromUtf8(oxim_user_dir()).append("/tables"));    QString modules_dir(QString::fromUtf8(oxim_user_dir()).append("/modules"));    bool isReload = false;    InstallIM form;    int isOk = form.exec();        if (!isOk)	return;        QMap<QCheckListItem *, QString>::Iterator it;    for (it = form.CheckMap.begin(); it != form.CheckMap.end(); ++it)    {	QCheckListItem *item = it.key();	QString cinfile = QString::fromUtf8(oxim_user_dir()) + "/" + it.data();	if (item->isOn())	{	    convert2table(cinfile);	    QFile file(cinfile);	    file.remove();	    isReload = true;	}    }    // 是否有選擇檔案    if (form.FileName->text().stripWhiteSpace().length())    {	// 檢查檔案是否存在	QFileInfo file(form.FileName->text().stripWhiteSpace());	if (file.exists())	{	    QString path(file.dirPath()); // 原始檔路徑	    QString name(file.fileName()); // 原始檔檔名	    QString basename = file.baseName(FALSE); // 不含副檔名的檔名	    QString extname = file.extension(FALSE); // 副檔名	    printf("%s\n", extname.utf8().data());	    // 檢查檔案的擴充名稱(*.cin、*.tab、*.so)	    if (extname == "cin" || extname == "gz" || extname == "in")	    {		QString tabname(basename.append(".tab"));		QString cmd( "oxim2tab" );		cmd.append( " -o " );		cmd.append(tables_dir + "/" + tabname);		cmd.append( " " );		cmd.append(form.FileName->text());				if (system(cmd.utf8().data()) == 0)		{		    if(oxim_CheckTable(tables_dir.utf8().data(), tabname.utf8().data(), NULL, NULL))		    {			isReload = true;			printf("轉檔成功\n");		    }		    else		    {			printf("1.輸入法轉檔失敗\n");		    }		}		else		{		    printf("2.輸入法轉檔失敗\n");		}	    }	    else if (extname == "tab")	    {		// 檢查 tab 檔是否合法		if (oxim_CheckTable(path.utf8().data(),				    name.utf8().data(),				    NULL, NULL))		{		    QString source(form.FileName->text().stripWhiteSpace());		    QString target(tables_dir + "/" + basename+".tab");		    if (CopyBinaryFile(target.utf8().data(), source.utf8().data()))		    {			isReload = true;			printf("安裝成功\n");		    }		    else		    {			printf("安裝失敗\n");		    }		}		else		{		    printf("不支援此種格式的 tab 檔案!\n");		}	    }	    else		printf("不是 OXIM 支援的輸入法檔案\n");	}    }    if (isReload)    {	// 重新寫入 config 檔案	oxim_make_config();	// 清除 oxim config	oxim_destroy();	// 重新讀取	IMListInit();    }}bool OXIM_Setup::CopyBinaryFile( QString target, QString source ){    QFile sourceFile(source);    QFile targetFile(target);    Q_LONG readBytes;    char data[10240];  // 資料存取區    if (!sourceFile.open(IO_ReadOnly)) // 唯讀開啟    {	return false;    }    if (!targetFile.open(IO_WriteOnly|IO_Truncate)) // 寫入    {	return false;    }     while ((readBytes = sourceFile.readBlock(data, sizeof(data))) > 0)    {	 targetFile.writeBlock(data, readBytes);    }     sourceFile.close();     targetFile.close();     return true;}void OXIM_Setup::DeleteIM_clicked(){    QListViewItem *item = IMListView->selectedItem();    if (!item)    {	return;    }    int idx = getIndexByItem(item);    if (idx < 0)    {	return;    }    iminfo_t *imp = oxim_get_IM(idx);    if (!imp)    {	return;    }    // 不在使用者目錄下的不能殺    if (!imp->inuserdir)	return;    // 不是 tab 檔,不能殺    if (strcasecmp(imp->modname, "gen-inp") != 0 && strcasecmp(imp->modname, "gen-inp-v1") != 0)    {	return;    }    bool yesno = QMessageBox::warning( this, trUtf8("移除輸入法"),	      trUtf8("這樣會將您選定的輸入法從您的電腦中移除,\n") +	      trUtf8("無法再繼續使用,真的要這樣做嗎?"),              trUtf8("確定移除(&Y)"), trUtf8("取消(&N)"), 0, 1, 0 );        if (yesno != 0)	return;    QString tables_dir(QString::fromUtf8(oxim_user_dir()).append("/tables"));    QString tab_name(QString::fromUtf8(imp->objname).append(".tab"));    QFile::remove(tables_dir.append("/").append(tab_name));        // 重新寫入 config 檔案    oxim_make_config();    // 清除 oxim config    oxim_destroy();    // 重新讀取    IMListInit();}/*  * 將參考檔轉檔到使用者目錄下  */void OXIM_Setup::convert2table( QString sourceFile ){    QFileInfo fileInfo(sourceFile);    QString tables_dir(QString::fromUtf8(oxim_user_dir()).append("/tables"));    QString targetFile = tables_dir.append("/") + fileInfo.baseName().append(".tab");    printf("source name = %s \n", sourceFile.utf8().data());    printf("target name = %s \n", targetFile.utf8().data());        QString cmd = QString( "oxim2tab" ) + " -o " + targetFile + " " + sourceFile;    system(cmd.utf8().data());}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -