示例#1
0
void AccountModifyDlg::updateUserID()
{
	if(key.isNull()) {
		setKeyID(false);
	}
	else {
		setKeyID(true, key.primaryUserId());
	}
}
示例#2
0
void AccountModifyDlg::clearKey()
{
	setKeyID(false);
	key = QCA::PGPKey();
}
示例#3
0
/*
 * data write
 */
LOCAL INT writeData( ID devid, INT datano, INT datacnt, void *buf, SDI sdi )
{
	W	size;
	KbDef	*kbdef;
	UW	kbsel, kid;
	ER	err = E_OK;

        /* parameter check */
	if ( datacnt < 0 ) {
		DEBUG_PRINT(("writeData, datacnt(%d) err\n", datacnt));
		return E_PAR;
	}

	kbsel = kid = 0;
	switch ( datano ) {
	  case DN_KPEVENT:	/* message buffer ID for event notification    (RW) */
		size = sizeof(kpMgrInfo.eventMbf);
		break;
	  case DN_KPSTAT:	/* KB/PD status                             (RW) */
		size = sizeof(kpMgrInfo.kpState);
		break;
	  case DN_KEYTAB:	/* keytable                               (RW) */
		kbdef = GetKbDef(0, kpMgrInfo.kb.keyID);
		size = ( kbdef == NULL )?
				0: kbdef->size - offsetof(KeyDef, keytab);
		break;
	  case DN_KEYMODE:	/* change key mode			(RW) */
		size = sizeof(kpMgrInfo.kb.keyMode);
		break;
	  case DN_PDMODE:	/* PD mode			(RW) */
		size = sizeof(kpMgrInfo.pd.pdMode);
		break;
	  case DN_PDRANGE:	/* PD range            (RW) */
		size = sizeof(kpMgrInfo.pd.pdRange);
		break;
	  case DN_PDSIM:	/* PD simulation speed                (RW) */
		size = sizeof(kpMgrInfo.pd.pdSimSpeed);
		break;
	  case DN_PDSIMINH:	/* halt PD simulation temporarily (RW) */
		size = sizeof(kpMgrInfo.pd.pdSimInh);
		break;
	  case DN_KEYID:	/* keyboard ID                     (RW) */
		size = sizeof(kpMgrInfo.kb.keyID);
		break;
	  case DN_KPMETABUT:	/* meta key / button status                   (W)  */
		size = sizeof(MetaBut) * 2;
		break;

	  case DN_KEYMAP:	/* keymap                                (R)  */
	  case DN_KPINPUT:	/* input mailbox ID                  (R)  */
                /* read-only attribute data */
		DEBUG_PRINT(("writeData, read only\n"));
		return E_PAR;

	  default:
		if ( SelKbDef(&kbsel, &kid, datano) ) {
			/* DN_KEYDEF keyboard definition                    (RW) */
			kbdef = GetKbDef(kbsel, kid);
			size = ( kbdef == NULL )? 0: kbdef->size;
		} else {
			/* data number error */
			DEBUG_PRINT(("writeData, datano(%d) err\n", datano));
			return E_PAR;
		}
	}

	if ( datacnt > 0 ) {
		if ( datano != DN_KEYTAB
		  && !(datano <= DN_KEYDEF_S && datano >= DN_KEYDEF_E)
		  && !(datano <= DN_KEYDEF2_S && datano >= DN_KEYDEF2_E) ) {
			/* except for keytable, partial write is prohibited */
			if ( datacnt < size ) return E_PAR;
		}

		/* data write */
		switch ( datano ) {
		  case DN_KPEVENT:	/* message buffer ID for event notification */
			kpMgrInfo.eventMbf = *(ID*)buf;
			break;
		  case DN_KPSTAT:	/* KB/PD status                          */
			err = setKpState((KPStat*)buf);
			break;
		  case DN_KEYTAB:	/* keytable */
			err = setKeyTab((KeyTab*)buf, datacnt);
			break;
		  case DN_KEYMODE:	/* key mode */
			err = setKeyMode((KeyMode*)buf);
			break;
		  case DN_PDMODE:	/* PD mode */
			err = setPdMode((PdMode*)buf);
			break;
		  case DN_PDRANGE:	/* PD range */
			err = setPdRange((PdRange*)buf);
			break;
		  case DN_PDSIM:	/* PD simulation speed                */
			err = setPdSimSpeed(*(W*)buf);
			break;
		  case DN_PDSIMINH:	/* halt PD simulation temporarily */
			err = setPdSimInh(*(BOOL*)buf);
			break;
		  case DN_KEYID:	/* keyboard ID */
			err = setKeyID(*(UW*)buf);
			break;
		  case DN_KPMETABUT:	/* meta key / button status  */
			err = setKpMetaBut((MetaBut*)buf);
			break;
		  default:		/* keyboard definition */
			err = setKeyDef((KeyDef*)buf,
						kbsel, kid, datacnt);
		}
	}
	if ( err != E_OK ) {
		DEBUG_PRINT(("writeData, write err = %d\n", err));
		return err;
	}
	return size;
}