コード例 #1
0
ファイル: hpscombobox.cpp プロジェクト: abho/HPicSync
void HPSComboBox::setItemByText(const QString &str)
{
   // qDebug() << Q_FUNC_INFO << str;
    QStandardItem *item;
    if(mPopup->isListView())
        item = findItemInList(str);
    else
        item = findItemInTree(str);

    qDebug() << item;
    if( item!= NULL){
       // qDebug() << "gefunden";
        mLineEdit->setText(QDir::toNativeSeparators(str));
        mPopup->setItem(item);

    }else {
        mLineEdit->setText("");
    }
}
コード例 #2
0
ファイル: moduletree.cpp プロジェクト: 0xmono/miranda-ng
void replaceTreeItem(HWND hwnd, MCONTACT hContact, const char *module, const char *newModule)
{
	int hItem = findItemInTree(hwnd, hContact, (char *)module);
	HTREEITEM hParent;

	if (hItem == -1)
		return;

	hParent = TreeView_GetParent(hwnd, (HTREEITEM)hItem);

	{
		TVITEM item;
		item.mask = TVIF_PARAM;
		item.hItem = (HTREEITEM)hItem;

		if (TreeView_GetItem(hwnd, &item))
			mir_free((ModuleTreeInfoStruct *)item.lParam);
		TreeView_DeleteItem(hwnd, item.hItem);
	}

	if (hParent && newModule) {
		TVINSERTSTRUCT tvi = {0};
		ModuleTreeInfoStruct *lParam;

		tvi.hParent = hParent;
		tvi.hInsertAfter = TVI_SORT;
		tvi.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;
		tvi.item.pszText = (char *)newModule;

		lParam = (ModuleTreeInfoStruct *)mir_calloc(sizeof(ModuleTreeInfoStruct));
		lParam->hContact = hContact;
		lParam->type = KNOWN_MODULE;
		tvi.item.iImage = 1;
		tvi.item.iSelectedImage = 2;

		tvi.item.lParam = (LPARAM)lParam;

		TreeView_InsertItem(hwnd, &tvi);
	}
}
コード例 #3
0
ファイル: moduletree.cpp プロジェクト: 0xmono/miranda-ng
int doContacts(HWND hwnd2Tree, HTREEITEM contactsRoot, ModuleSettingLL *modlist, MCONTACT hSelectedContact, char *SelectedModule, char *SelectedSetting)
{
	TVINSERTSTRUCT tvi;
	HTREEITEM contact;
	ModuleTreeInfoStruct *lParam;
	ModSetLinkLinkItem *module;
	int count = CallService(MS_DB_CONTACT_GETCOUNT, 0, 0);
	int itemscount = 0;
	int loaded, i = 0, icon = 0;
	HWND hwnd = GetParent(hwnd2Tree);
	int hItem = -1;

	SetWindowText(hwnd2mainWindow, Translate("Loading contacts..."));

	tvi.hInsertAfter = TVI_SORT;
	tvi.item.cChildren = 1;

	for (MCONTACT hContact = db_find_first(); hContact && hwnd2mainWindow; hContact = db_find_next(hContact)) {
		char szProto[100];
		if (DBGetContactSettingStringStatic(hContact, "Protocol", "p", szProto, SIZEOF(szProto))) {
			icon = GetProtoIcon(szProto);
			loaded = (icon != DEF_ICON);
		}
		else {
			icon = DEF_ICON;
			loaded = 0;
		}

		i++;

		// filter
		if ((loaded && Mode == MODE_UNLOADED) || (!loaded && Mode == MODE_LOADED))
			continue;

		// add the contact
		lParam = (ModuleTreeInfoStruct *)mir_calloc(sizeof(ModuleTreeInfoStruct));
		lParam->hContact = hContact;
		lParam->type = CONTACT;
		tvi.item.mask = TVIF_TEXT | TVIF_CHILDREN | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
		tvi.item.lParam = (LPARAM)lParam;
		tvi.hParent = contactsRoot;

		if (hSelectedContact != hContact)
			lParam->type |= EMPTY;

		// contacts name
		DBVARIANT dbv = {0};
		WCHAR nick[256];
		WCHAR protoW[256]; // unicode proto

		if (szProto)
			a2u(szProto, protoW, SIZEOF(protoW));
		else
			protoW[0] = 0;

		if (!szProto || !loaded) {
			tvi.item.iSelectedImage = (tvi.item.iImage = 4);

			if (protoW) {
				if (Order)
					mir_snwprintf(nick, SIZEOF(nick), L"(%s) %s %s", protoW, GetContactName(hContact, szProto, 1), L"(UNLOADED)");
				else
					mir_snwprintf(nick, SIZEOF(nick), L"%s (%s) %s", GetContactName(hContact, szProto, 1), protoW, L"(UNLOADED)");
			}
			else
				wcscpy(nick, nick_unknownW);
		}
		else {
			tvi.item.iSelectedImage = (tvi.item.iImage = icon); //GetProtoIcon(szProto, 7));
			if (Order)
				mir_snwprintf(nick, SIZEOF(nick), L"(%s) %s", protoW, GetContactName(hContact, szProto, 1));
			else
				mir_snwprintf(nick, SIZEOF(nick), L"%s (%s)", GetContactName(hContact, szProto, 1), protoW);
		}

		tvi.item.pszText = (char *)nick;
		contact = TreeView_InsertItemW(hwnd2Tree, &tvi);

		itemscount++;

		if (hSelectedContact == hContact) {
			module = modlist->first;
			while (module && hwnd2mainWindow) {
				if (module->name[0] && !IsModuleEmpty(hContact, module->name)) {
					tvi.hParent = contact;
					tvi.hInsertAfter = TVI_SORT;
					tvi.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;
					tvi.item.pszText = module->name;

					lParam = (ModuleTreeInfoStruct *)mir_calloc(sizeof(ModuleTreeInfoStruct));
					lParam->hContact = hContact;

					tvi.item.iImage = 1;
					tvi.item.iSelectedImage = 2;
					lParam->type = KNOWN_MODULE;

					tvi.item.lParam = (LPARAM)lParam;
					TreeView_InsertItem(hwnd2Tree, &tvi);
				}
				module = (ModSetLinkLinkItem *)module->next;
			}

			hItem = findItemInTree(hwnd2Tree, hSelectedContact, SelectedModule);
		}
	}

	if (hItem != -1) {
		TreeView_SelectItem(hwnd2Tree, (HTREEITEM)hItem);
		TreeView_Expand(hwnd2Tree, hItem, TVE_EXPAND);
		if (SelectedSetting[0])
			SelectSetting(SelectedSetting);
	}

	return itemscount;
}
コード例 #4
0
ファイル: moduletree.cpp プロジェクト: 0xmono/miranda-ng
void __cdecl PopulateModuleTreeThreadFunc(LPVOID di)
{
	TVINSERTSTRUCT tvi;
	HWND hwnd2Tree = GetDlgItem(hwnd2mainWindow, IDC_MODULES);
	char SelectedModule[256] = {0};
	char SelectedSetting[256] = {0};
	MCONTACT hSelectedContact = hRestore;
	MCONTACT hContact;
	HTREEITEM contact, contactsRoot;
	int count;

	// item lParams
	ModuleTreeInfoStruct *lParam;

	// module list
	ModSetLinkLinkItem *module;
	ModuleSettingLL modlist;

	hRestore = NULL;

	if (!hwnd2Tree) {
		msg(Translate("Module tree not found"), modFullname);
		return;
	}

	Select = 0;

	switch ((int)di) {
	case 1: // restore after rebuild
		if (HTREEITEM item = TreeView_GetSelection(hwnd2Tree)) {
			TVITEM tvi = {0};
			tvi.mask = TVIF_HANDLE | TVIF_PARAM | TVIF_TEXT;
			tvi.pszText = SelectedModule;
			tvi.cchTextMax = 255;
			tvi.hItem = item;

			TreeView_GetItem(hwnd2Tree, &tvi);
			if (tvi.lParam) {
				ModuleTreeInfoStruct *mtis = (ModuleTreeInfoStruct *)tvi.lParam;
				hSelectedContact = mtis->hContact;
				if (mtis->type == CONTACT)
					SelectedModule[0] = 0;
				Select = 1;
			}
		}
		break;

	case 2: // restore saved
		if (GetValue(NULL, modname, "LastModule", SelectedModule, SIZEOF(SelectedModule))) {
			hSelectedContact = db_get_dw(NULL, modname, "LastContact", (DWORD)INVALID_HANDLE_VALUE);
			if (hSelectedContact != INVALID_CONTACT_ID)
				Select = 1;
			GetValue(NULL, modname, "LastSetting", SelectedSetting, SIZEOF(SelectedSetting));
		}
		break;

	case 3: // restore from user menu
	case 4: // jump from user menu
		if (hSelectedContact && hSelectedContact != INVALID_CONTACT_ID)
			Select = 1;
		break;
	}

	if ((int)di != 4) { // do not rebuild on just going to another setting
		if (!EnumModules(&modlist)) {
			msg(Translate("Error loading module list"), modFullname);
			return;
		}

		// remove all items (incase there are items there...
		freeTree(hwnd2Tree, 0);
		TreeView_DeleteAllItems(hwnd2Tree);
		TreeView_SelectItem(hwnd2Tree, 0);

		//image list
		TreeView_SetImageList(hwnd2Tree, himl, TVSIL_NORMAL);

		/// contact root item
		contacts_mtis.type = CONTACT_ROOT_ITEM;
		tvi.item.lParam = (LPARAM)&contacts_mtis;
		tvi.hParent = NULL;
		tvi.item.mask = TVIF_TEXT | TVIF_CHILDREN | TVIF_STATE | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
		tvi.item.state = TVIS_BOLD;
		tvi.item.stateMask = TVIS_BOLD;
		tvi.item.cChildren = 1;
		tvi.hInsertAfter = TVI_FIRST;

		tvi.item.pszText = Translate("Contacts");
		tvi.item.iImage = 3;
		tvi.item.iSelectedImage = 3;
		contactsRoot = TreeView_InsertItem(hwnd2Tree, &tvi);

		// add the settings item
		settings_mtis.type = STUB;
		tvi.item.lParam = (LPARAM)&settings_mtis;
		tvi.item.mask = TVIF_TEXT | TVIF_CHILDREN | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
		tvi.item.cChildren = 1;
		tvi.hParent = NULL;
		tvi.hInsertAfter = TVI_FIRST;
		tvi.item.pszText = Translate("Settings");
		tvi.item.iImage = 0;
		tvi.item.iSelectedImage = 0;
		contact = TreeView_InsertItem(hwnd2Tree, &tvi);

		// to fix bug with CHANGE NOTIFY on window activation
		TreeView_SelectItem(hwnd2Tree, contact);
		settings_mtis.type = CONTACT;

		hContact = 0;
		module = modlist.first;
		while (module) {
			if (!IsModuleEmpty(hContact, module->name)) {
				tvi.hParent = contact;
				tvi.hInsertAfter = TVI_SORT;
				tvi.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM;
				tvi.item.pszText = module->name;

				lParam = (ModuleTreeInfoStruct *)mir_calloc(sizeof(ModuleTreeInfoStruct));
				lParam->hContact = hContact;
				tvi.item.iImage = 1;
				tvi.item.iSelectedImage = 2;
				lParam->type = KNOWN_MODULE;

				tvi.item.lParam = (LPARAM)lParam;

				TreeView_InsertItem(hwnd2Tree, &tvi);
			}
			module = (ModSetLinkLinkItem *)module->next;
		}

		if (db_get_b(NULL, modname, "ExpandSettingsOnOpen", 0))
			TreeView_Expand(hwnd2Tree, contact, TVE_EXPAND);

		if (Select && hSelectedContact == NULL) {
			int hItem = findItemInTree(hwnd2Tree, hSelectedContact, SelectedModule);
			if (hItem != -1) {
				TreeView_SelectItem(hwnd2Tree, (HTREEITEM)hItem);
				TreeView_Expand(hwnd2Tree, hItem, TVE_EXPAND);
				if (SelectedSetting[0])
					SelectSetting(SelectedSetting);
			}
			Select = 0;
		}

		count = doContacts(hwnd2Tree, contactsRoot, &modlist, Select ? hSelectedContact : NULL, SelectedModule, SelectedSetting);
		Select = 0;
		doItems(hwnd2Tree, &modlist, count);

		FreeModuleSettingLL(&modlist);
	}

	if (Select) {
		int hItem = findItemInTree(hwnd2Tree, hSelectedContact, SelectedModule);
		if (hItem != -1) {
			TreeView_SelectItem(hwnd2Tree, (HTREEITEM)hItem);
			TreeView_Expand(hwnd2Tree, hItem, TVE_EXPAND);
			if (SelectedSetting[0])
				SelectSetting(SelectedSetting);
		}
	}

	populating = 0;

}