本文整理汇总了C++中WApplication::internalPath方法的典型用法代码示例。如果您正苦于以下问题:C++ WApplication::internalPath方法的具体用法?C++ WApplication::internalPath怎么用?C++ WApplication::internalPath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WApplication
的用法示例。
在下文中一共展示了WApplication::internalPath方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: selectVisual
void WMenu::selectVisual(int index, bool changePath, bool showContents)
{
if (contentsStack_)
previousStackIndex_ = contentsStack_->currentIndex();
WMenuItem *item = index >= 0 ? itemAt(index) : 0;
if (changePath && internalPathEnabled_ &&
index != -1 && item->internalPathEnabled()) {
WApplication *app = wApp;
previousInternalPath_ = app->internalPath();
std::string newPath = basePath_ + item->pathComponent();
if (newPath != app->internalPath())
emitPathChange_ = true;
// The change is emitted in select()
app->setInternalPath(newPath);
}
for (int i = 0; i < count(); ++i)
renderSelected(itemAt(i), (int)i == index);
if (index == -1)
return;
if (showContents && contentsStack_) {
WWidget *contents = item->contents();
if (contents)
contentsStack_->setCurrentWidget(contents);
}
itemSelectRendered_.emit(item);
}
示例2: select
void WMenu::select(int index, bool changePath)
{
int last = current_;
setCurrent(index);
selectVisual(current_, changePath, true);
if (index != -1) {
WMenuItem *item = itemAt(index);
item->show();
item->loadContents();
DeletionTracker guard(this);
if (changePath && emitPathChange_) {
WApplication *app = wApp;
app->internalPathChanged().emit(app->internalPath());
if (guard.deleted())
return;
emitPathChange_ = false;
}
if (last != index) {
item->triggered().emit(item);
if (!guard.deleted()) {
// item may have been deleted too
if (ul()->indexOf(item) != -1)
itemSelected_.emit(item);
else
select(-1);
}
}
}
}
示例3: setInternalPathEnabled
void WMenu::setInternalPathEnabled(const std::string& basePath)
{
WApplication *app = WApplication::instance();
basePath_ = basePath.empty() ? app->internalPath() : basePath;
basePath_ = Utils::append(Utils::prepend(basePath_, '/'), '/');
if (!internalPathEnabled_) {
internalPathEnabled_ = true;
app->internalPathChanged().connect(this, &WMenu::handleInternalPathChange);
}
previousInternalPath_ = app->internalPath();
internalPathChanged(app->internalPath());
updateItemsInternalPath();
}
示例4: itemPathChanged
void WMenu::itemPathChanged(WMenuItem *item)
{
if (internalPathEnabled_ && item->internalPathEnabled()) {
WApplication *app = wApp;
if (app->internalPathMatches(basePath_ + item->pathComponent()))
item->setFromInternalPath(app->internalPath());
}
}
示例5: handlePathChange
void handlePathChange(const std::string& path) {
WApplication *app = wApp;
if (app->internalPathMatches(basePath_)) {
dbo::Transaction t(session_);
std::string path = app->internalPathNextPart(basePath_);
items_->clear();
if (users_) {
delete users_;
users_ = 0;
}
if (path.empty())
showPosts(session_.find<Post>
("where state = ? "
"order by date desc "
"limit 10").bind(Post::Published), items_);
else if (path == "author") {
std::string author = app->internalPathNextPart(basePath_ + path + '/');
dbo::ptr<User> user = findUser(author);
if (user)
showPosts(user);
else
showError(tr("blog-no-author").arg(author));
} else if (path == "edituser") {
editUser(app->internalPathNextPart(basePath_ + path + '/'));
} else if (path == "all") {
showArchive(items_);
} else {
std::string remainder = app->internalPath().substr(basePath_.length());
showPostsByDateTopic(remainder, items_);
}
t.commit();
}
}
示例6: select
void WMenu::select(int index, bool changePath)
{
int last = current_;
setCurrent(index);
selectVisual(current_, changePath, true);
if (index != -1) {
WMenuItem *item = itemAt(index);
item->show();
item->loadContents();
if (changePath && emitPathChange_) {
WApplication *app = wApp;
app->internalPathChanged().emit(app->internalPath());
emitPathChange_ = false;
}
if (last != index) {
item->triggered().emit(item);
itemSelected_.emit(item);
}
}
}