Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Native Development

Reply
Developer
Posts: 61
Registered: ‎10-16-2013
My Device: Z10
My Carrier: vodaphone

NavigationPane problem.

Hi all, this is the code i'm using..

 

in appUI. cpp

 

TabbedPane* _tpTabbedPane ;

Page * _pHome = Page::create().content(Label::create().text("HOME"));
Page * _pCall = Page::create().content(Label::create().text("CALL"));
Page * _pSearch = Page::create().content(Label::create().text("SEARCH"));
Page * _pLocation = Page::create().content(Label::create().text("LOCTION"));


_npNavPane = NavigationPane::create().add(_pHome) ;

_tHome = Tab::create().content(_npNavPane) ;
_tSearch = Tab::create().content(_pSearch) ;
_tCall = Tab::create().content(_pCall) ;
_tLocation = Tab::create().content(_pLocation) ;

_tpTabbedPane = TabbedPane::create()
.showTabsOnActionBar(true)
.add(_tHome)
.add(_tSearch)
.add(_tCall)
.add(_tLocation) ;


QObject::connect(_tHome, SIGNAL(triggered()),
this, SLOT(onHome()));


QObject::connect(_tSearch, SIGNAL(triggered()),
this, SLOT(onSearch()));


QObject::connect(_tCall, SIGNAL(triggered()),
this, SLOT(onCall()));


QObject::connect(_tLocation, SIGNAL(triggered()),
this, SLOT(onLocation()));


app->setScene(_tpTabbedPane) ;

 

the slots :

 

void ApplicationUI:Smiley SurprisednHome() {

}

void ApplicationUI:Smiley SurprisednSearch() {
_npNavPane->push(Page::create().content(Label::create().text("ON SEarchhhh"))) ;
}

void ApplicationUI:Smiley SurprisednCall() {
_npNavPane->push(Page::create().content(Label::create().text("ON CalLLL"))) ;
}

void ApplicationUI:Smiley SurprisednLocation() {
_npNavPane->push(Page::create().content(Label::create().text("ON LoC"))) ;
}

 

hpp file :

 

class ApplicationUI : public QObject
{
Q_OBJECT
NavigationPane *_npNavPane ;
Tab* _tHome ;
Tab* _tCall ;
Tab* _tSearch ;
Tab* _tLocation ;
public:
ApplicationUI(bb::cascades::Application *app);
virtual ~ApplicationUI() { }
private slots:
void onSystemLanguageChanged();
void onHome() ;
void onSearch() ;
void onCall() ;
void onLocation() ;
private:
QTranslator* m_pTranslator;
bb::cascades::LocaleHandler* m_pLocaleHandler;
};

 

My problem being: when i click 3rd tab, the slot gets executed, but the page is pushed on the 1st tab, which is only visible when i manually goto the first tab.

 

What i expect is : irrespective from which tab i push the page, it shoud be immidatly visible to me.

I want to use only one navigation pane. not 4 for all the 4 tabs.

 

Please help!

Thanks.

Developer
Posts: 1,524
Registered: ‎12-18-2012
My Device: Z30, Z10 LE, DevAlpha C, PlayBook

Re: NavigationPane problem.

Technically this probably can be done by reparenting the NavigationPane to the new tab in activePaneChanged signal handler, but wouldn't this confuse the user? Why not create a different Page for each tab? I think the user will assume that tabs switch pages, not work as buttons.

Andrey Fidrya, @zmeyc on twitter
Developer
Posts: 61
Registered: ‎10-16-2013
My Device: Z10
My Carrier: vodaphone

Re: NavigationPane problem.

yes even i think it is very confusing. so I'm left with 4 nav panes for 4 tabs i guess..!

Highlighted
Developer
Posts: 6,152
Registered: ‎07-05-2012
My Device: Playbook, Dev Alpha C, Z10 LE, Z30
My Carrier: Orange

Re: NavigationPane problem.

[ Edited ]

I think the only other valid use of the Tab is as a filter where no new page is pushed but the contents change accordingly, this is done in a few of the Native apps.

 

As Zmey says there are ways to do it but where you can try and stay within the users expectation of what each UI element does you probably should.

 

When entering code don't forget to use the 'insert code' button the clipboard with a 'C' on it.


If you've been helped click on Like Button, if you've been saved buy the app. Smiley Happy

Developer of stokLocker, Sympatico and Super Sentences.