QMenu* KoSelectShapeAction::createShapeMenu() { // get all available shapes from the registry and fill the menu QMenu* menu = new QMenu(); foreach( const QString & shapeId, KoShapeRegistry::instance()->keys() ) { KoShapeFactory* factory = KoShapeRegistry::instance()->value( shapeId ); // if there are templates create a submenu if( !factory->templates().isEmpty() ) { QMenu* tmp = menu->addMenu( KIcon( factory->icon() ), factory->name() ); tmp->setToolTip( factory->toolTip() ); foreach( const KoShapeTemplate & shapeTemplate, factory->templates() ) { QAction* action = tmp->addAction( shapeTemplate.name ); action->setIcon( KIcon( shapeTemplate.icon ) ); action->setToolTip( shapeTemplate.toolTip ); action->setData( shapeTemplate.id ); } }
QMenu *BtMenuView::newMenu(QMenu *parentMenu, const QModelIndex &itemIndex) { QVariant displayData(m_model->data(itemIndex, Qt::DisplayRole)); QVariant iconData(m_model->data(itemIndex, Qt::DecorationRole)); QVariant toolTipData(m_model->data(itemIndex, Qt::ToolTipRole)); QVariant statusTipData(m_model->data(itemIndex, Qt::StatusTipRole)); QVariant whatsThisData(m_model->data(itemIndex, Qt::WhatsThisRole)); QMenu *childMenu = new QMenu(parentMenu); // Set text: if (displayData.canConvert(QVariant::String)) { childMenu->setTitle(displayData.toString()); } // Set icon: if (iconData.canConvert(QVariant::Icon)) { childMenu->setIcon(iconData.value<QIcon>()); } // Set tooltip: if (toolTipData.canConvert(QVariant::String)) { childMenu->setToolTip(toolTipData.toString()); } // Set status tip: if (statusTipData.canConvert(QVariant::String)) { childMenu->setStatusTip(statusTipData.toString()); } // Set whatsthis: if (whatsThisData.canConvert(QVariant::String)) { childMenu->setWhatsThis(whatsThisData.toString()); } return childMenu; }
void ViewToolTipAndUrlManager::fillContextMenu(QMenu *menu) { Graph *graph = _view->graph(); QAction *action = menu->addAction("Tooltips"); action->setToolTip(QString("When moving the mouse pointer, a tooltip is displayed with some " "information about the graph element located under the pointer")); action->setCheckable(true); action->setChecked(_tooltips); connect(action, SIGNAL(triggered(bool)), this, SLOT(displayToolTips(bool))); // add submenu to manage the url property choice QMenu *urlPropMenu; if (graph->existProperty(_urlPropName)) urlPropMenu = menu->addMenu( QString("Url property").append(" (").append(tlpStringToQString(_urlPropName)).append(")")); else { urlPropMenu = menu->addMenu("Url property"); _urlPropName.clear(); } urlPropMenu->setToolTip( QString("Choose the property giving the web page associated with a graph element")); QActionGroup *urlPropGroup = new QActionGroup(urlPropMenu); urlPropGroup->setExclusive(true); connect(urlPropMenu, SIGNAL(triggered(QAction *)), this, SLOT(setUrlProp(QAction *))); action = urlPropMenu->addAction(" None "); action->setCheckable(true); urlPropGroup->addAction(action); if (_urlPropName.empty()) action->setChecked(true); action->setToolTip(QString("The graph elements have no associated web page")); // get all existing StringProperty std::set<std::string> props; for (auto inheritedProp : graph->getInheritedObjectProperties()) { StringProperty *prop = dynamic_cast<StringProperty *>(inheritedProp); if (prop != nullptr) props.insert(prop->getName()); } for (auto localProp : graph->getLocalObjectProperties()) { StringProperty *prop = dynamic_cast<StringProperty *>(localProp); if (prop != nullptr) props.insert(prop->getName()); } // insert the StringProperty found for (auto propName : props) { // among the view... properties only viewLabel is allowed if (propName.find("view") != 0 || propName == "viewLabel") { action = urlPropMenu->addAction(tlpStringToQString(propName)); action->setToolTip( QString("The url of the web page associated with a graph element is given by the \"") .append(tlpStringToQString(propName)) .append(QString("\" property value"))); urlPropGroup->addAction(action); action->setCheckable(true); if (_urlPropName == propName) action->setChecked(true); } } }
void cListWidget::navigate_to_clicked_folder(QListWidgetItem *current) { //creash protection //the clear() triggers a currentitemChanged and we receive //a bad null pointer if ( this->workLock == true ) return; this->workLock = true; //if this is a FILE -> wanna copy? if ( this->count() > 0 && this->children().count() > 0 ) { //fi is the COPY-SOURCE QFileInfo fi( current->toolTip() ); if ( fi.isFile() ) { //we're a file -> wanna copy? & return QMenu* m = new QMenu(); m->addAction( QIcon( ":/resources/img/" ), tr( "copy to /maps" ) ); m->setToolTip( this->projectFolder + "/maps/" ); QDir d( this->projectFolder + "/res/" ); QStringList dirs = d.entryList( QDir::NoFilter, QDir::Name ); for ( int i = 0; i < dirs.count(); i++ ) { if ( dirs.at(i) != "." && dirs.at(i) != ".." ) { m->addAction( QIcon( ":/resources/img/" ), tr( "copy to /res/" ) + dirs.at(i) ); m->actions().last()->setToolTip( this->projectFolder + "/res/" + dirs.at(i) ); } } QAction* a = m->exec( this->last_mouse_position ); if ( a != 0 ) { //check if the target file already exists in the pro folder //DESTINATION-FILE: QFile f( a->toolTip() + "/" + fi.fileName() ); //if-> ask for renameing or exit if ( f.exists() ) { QMessageBox msgBox; msgBox.setWindowTitle( tr( "File already exists" ) ); msgBox.setText( tr( "The file " ) + fi.fileName() + tr( " does already exist at the path\n" ) + a->toolTip() + "/" + fi.fileName() + tr( "\nDo you want to replace it?" ) ); msgBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); msgBox.setDefaultButton(QMessageBox::No); msgBox.setIcon(QMessageBox::Warning); if ( msgBox.exec() == QMessageBox::Yes ) { f.copy( fi.absoluteFilePath(), a->toolTip() + "/" + fi.fileName() ); emit this->copy_done( tr( "Successfully copied file " ) + fi.absoluteFilePath() + tr( " to " ) + a->toolTip() + "/" + fi.fileName() ); } } else { //straight copy f.copy( fi.absoluteFilePath(), a->toolTip() + "/" + fi.fileName() ); emit this->copy_done( tr( "Successfully copied file " ) + fi.absoluteFilePath() + tr( " to " ) + a->toolTip() + "/" + fi.fileName() ); } } this->clearSelection(); this->workLock = false; return; } } //else this is a folder an we navigate //applying new values if ( this->count() > 0 && this->children().count() > 0 ) { QDir dpath; dpath.cd( current->toolTip() ); this->absolute_path = dpath.absolutePath() ; dpath.cd("/"); } //rebuilding the gui //adding new widgets //adding folders this->navigate_to_our_folder(); //removing lock this->clearSelection(); this->workLock = false; }