Discussion Board

Results 1 to 2 of 2
  1. #1
    Registered User Kolayuk's Avatar
    Join Date
    Mar 2010
    Posts
    42
    Здравствуйте, я столкнулся с неприятным багом (фичей?) в CAknMarkableListDialog (это диалог-список с галочками). Дело в том что если ни одной галочки не отмечено, то при нажатии ок происходит выделение того пункта на котором стоит курсор, а потом уже выход из диалога. Причем, даже видно перед тем как диалог закрывается, как ставится эта галочка на пункте на котором стоит курсор. Т.е этот диалог в принципе не может вернуть пустой список выбранных элементов. Может кто посоветует как это обойти, или может я что то не верно делаю?
    Ресурс диалога
    Code:
    RESOURCE DIALOG r_txt_uid_selection_list
    	{
    	 flags = EAknDialogMarkableList | EAknListBoxLoopScrolling; 
    	 buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
    	 items = 
    	 {
    		  DLG_LINE 
    		  {
    				type = EAknCtSingleListBox;
    				id = ESelectionListControl;
    				control = LISTBOX
    				{
    				  flags = EAknListBoxStylusMultiselectionList; // мультиселекшн чтобы отмечать элементы джойстиком а не шифтом
    				};
    		  }, 
    		    DLG_LINE 
    		    {
    		      itemflags = EEikDlgItemNonFocusing;
    		      id = EFindControl;
    		      type = EAknCtSelectionListFixedFind; 
    		    }
    	 };
    	}
    Код вызова диалога и обработки результата
    Code:
    CArrayFixFlat<TInt>* DefaultSelectedItemsList=new (ELeave) CArrayFixFlat<TInt>(3);
    TInt sel=0;
    .....
    	CAknMarkableListDialog* dlg=CAknMarkableListDialog::NewL(sel,DefaultSelectedItemsList,itemList,R_AVKON_DIALOG_EMPTY_MENUBAR);
    	dlg->PrepareLC(R_TXT_UID_SELECTION_LIST);
    	dlg->SetTitleL(aData.iName);
    	((CEikListBox*)dlg->Control(ESelectionListControl))->SetSelectionIndexesL(DefaultSelectedItemsList);
    	((CAknSingleStyleListBox*)dlg->Control(ESelectionListControl))->ItemDrawer()->ColumnData()->EnableMarqueeL(ETrue);
    	TInt popupOk=dlg->RunLD();
    
    	if (!popupOk)
    		{
    		return aUids;
    		}
    	else 
    		{
    		
    		i=0;
    		for (i=0; i<DefaultSelectedItemsList->Count(); i++)
    			{
    			
    				_LOGDATA(_L("In select: %d"),DefaultSelectedItemsList->At(i));
    				TInt uid=Uids[DefaultSelectedItemsList->At(i)];
    				TBuf<255> buf;
    				buf.AppendNum((TUint)uid, EHex);
    				result.Append(buf);
    				TChar c(aData.iMinValue);
    				result.Append(c);
    				
    			}
    		}

  2. #2
    Nokia Developer Moderator A.A.M.'s Avatar
    Join Date
    Jan 2008
    Location
    Moscow, Russia
    Posts
    3,308
    Унаследовать свой диалог от CAknMarkableListDialog и переопределить OkToExitL().

Similar Threads

  1. Выбор по дефолту в CAknMarkabliListDialog не работает
    By Kolayuk in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 3
    Last Post: 2010-07-22, 15:06
  2. Как сделать выбор папки в настройках?
    By Bchgroup in forum Russian Developer Forum - Форум Российских разработчиков
    Replies: 2
    Last Post: 2010-03-25, 20:13
  3. CAknMarkableListDialog How
    By pistha in forum Symbian C++
    Replies: 6
    Last Post: 2007-10-22, 11:03
  4. CAknMarkableListDialog Makablelist Problem
    By pistha in forum Symbian C++
    Replies: 0
    Last Post: 2007-10-22, 09:09
  5. CAknMarkableListDialog giving Problem
    By pavan in forum Symbian User Interface
    Replies: 0
    Last Post: 2007-10-08, 07:56

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved