void BookmarksToolBar::build() { clear(); for (int i = 0; i < m_bookmarksModel->rowCount(m_root); ++i) { QModelIndex idx = m_bookmarksModel->index(i, 0, m_root); if (m_bookmarksModel->hasChildren(idx)) { QToolButton *button = new QToolButton(this); button->setPopupMode(QToolButton::InstantPopup); button->setArrowType(Qt::DownArrow); button->setText(idx.data().toString()); ModelMenu *menu = new ModelMenu(this); connect(menu, SIGNAL(activated(QModelIndex)), this, SLOT(activated(QModelIndex))); menu->setModel(m_bookmarksModel); menu->setRootIndex(idx); menu->addAction(new QAction(menu)); button->setMenu(menu); button->setToolButtonStyle(Qt::ToolButtonTextOnly); QAction *a = addWidget(button); a->setText(idx.data().toString()); } else { QAction *action = addAction(idx.data().toString()); action->setData(idx.data(BookmarksModel::UrlRole)); } } }
void BookmarksToolBar::build() { clear(); for (int i = 0; i < m_bookmarksModel->rowCount(m_root); ++i) { QModelIndex idx = m_bookmarksModel->index(i, 0, m_root); QVariant variant; variant.setValue(idx); QString title = idx.data().toString(); bool folder = m_bookmarksModel->hasChildren(idx); QToolButton *button = 0; if (folder) button = new QToolButton(this); else button = new BookmarkToolButton(this); button->setPopupMode(QToolButton::InstantPopup); button->setToolButtonStyle(Qt::ToolButtonTextOnly); QAction *action = addWidget(button); action->setData(variant); action->setText(title); button->setDefaultAction(action); if (folder) { button->setArrowType(Qt::DownArrow); ModelMenu *menu = new BookmarksMenu(this); menu->setModel(m_bookmarksModel); menu->setRootIndex(idx); menu->addAction(new QAction(menu)); action->setMenu(menu); connect(menu, SIGNAL(openUrl(const QUrl &, const QString &)), this, SIGNAL(openUrl(const QUrl &, const QString &))); connect(menu, SIGNAL(openUrl(const QUrl &, TabWidget::OpenUrlIn, const QString &)), this, SIGNAL(openUrl(const QUrl &, TabWidget::OpenUrlIn, const QString &))); } else { connect(action, SIGNAL(triggered()), this, SLOT(openBookmark())); } }
void BookmarksToolBar::contextMenuRequested(const QPoint &position) { QToolButton *button = qobject_cast<QToolButton *>(childAt(position)); QMenu menu; QAction *action; if (button) { QModelIndex index; QVariant variant; BookmarkToolButton *bookmarkButton = qobject_cast<BookmarkToolButton *>(button); ModelMenu *modelMenu = qobject_cast<ModelMenu *>(button->menu()); if (modelMenu) { index = modelMenu->rootIndex(); variant.setValue(index); } else if (bookmarkButton) { index = bookmarkButton->index(); variant.setValue(index); action = menu.addAction(tr("Open"), this, SLOT(openBookmark())); action->setData(variant); action = menu.addAction(tr("Open in New &Tab"), this, SLOT(openBookmarkInNewTab())); action->setData(variant); menu.addSeparator(); } if (variant.isValid()) { action = menu.addAction(tr("Remove"), this, SLOT(removeBookmark())); action->setData(variant); } menu.addSeparator(); } action = menu.addAction(tr("Add Bookmark..."), this, SLOT(newBookmark())); action = menu.addAction(tr("Add Folder..."), this, SLOT(newFolder())); menu.exec(QCursor::pos()); }
void BookmarksMenu::openAll() { ModelMenu *menu = qobject_cast<ModelMenu*>(sender()->parent()); if (!menu) return; QModelIndex parent = menu->rootIndex(); if (!parent.isValid()) return; for (int i = 0; i < parent.model()->rowCount(parent); ++i) { QModelIndex child = parent.model()->index(i, 0, parent); if (child.data(BookmarksModel::TypeRole) != BookmarkNode::Bookmark) continue; TabWidget::OpenUrlIn tab; tab = (i == 0) ? TabWidget::CurrentTab : TabWidget::NewTab; emit openUrl(child.data(BookmarksModel::UrlRole).toUrl(), tab, child.data(Qt::DisplayRole).toString()); } }
void BookmarksToolBar::dropEvent(QDropEvent *event) { const QMimeData *mimeData = event->mimeData(); if (mimeData->hasUrls() && mimeData->hasText()) { QList<QUrl> urls = mimeData->urls(); QString title = mimeData->text(); QUrl url = urls.at(0); if (url.isEmpty()) { QToolBar::dropEvent(event); return; } if (title.isEmpty()) { title = QLatin1String(url.toEncoded()); } int row = -1; QModelIndex parentIndex = m_root; QToolButton *target = qobject_cast<QToolButton *>(childAt(event->pos())); if (target && target->menu()) { ModelMenu *menu = qobject_cast<ModelMenu *>(target->menu()); if (menu) parentIndex = menu->rootIndex(); } BookmarkNode *bookmark = new BookmarkNode(BookmarkNode::Bookmark); bookmark->url = QLatin1String(url.toEncoded()); bookmark->title = title; BookmarkNode *parent = m_bookmarksModel->node(parentIndex); BookmarksManager *bookmarksManager = m_bookmarksModel->bookmarksManager(); bookmarksManager->addBookmark(parent, bookmark, row); event->acceptProposedAction(); } QToolBar::dropEvent(event); }
bool GameInitialize() { AirgunInitialize( TheAirgunParameters ); CashMeter.setValue(100); TheSpeedDialog.setValues(); TheFileMenu.finishConstruction(); TheModelMenu.finishConstruction(); TheViewMenu.finishConstruction(); TheHelpMenu.finishConstruction(); TheGeologyItem.setChecked(ShowGeology.goal()); TheSeismicItem.setChecked(ShowSeismic.goal()); #if 0 srand(2); #else srand( unsigned( fmod( HostClockTime()*1E3, 4*double(1<<30)))); #endif return true; }