本文整理汇总了C++中KPopupMenu::insertSeparator方法的典型用法代码示例。如果您正苦于以下问题:C++ KPopupMenu::insertSeparator方法的具体用法?C++ KPopupMenu::insertSeparator怎么用?C++ KPopupMenu::insertSeparator使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KPopupMenu
的用法示例。
在下文中一共展示了KPopupMenu::insertSeparator方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: KToolBar
KToolBar *
xQGanttBarViewPort::toolbar(QMainWindow *mw)
{
if(_toolbar || mw == 0) return _toolbar;
_toolbar = new KToolBar(mw, QMainWindow::DockTop);
mw->addToolBar(_toolbar);
// KIconLoader* iconloader = new KIconLoader("kgantt");
_toolbar->insertButton("ganttSelect.png", 0,
SIGNAL(clicked()),
this, SLOT(setSelect()),
true, i18n("Select"));
KPopupMenu *selectMenu = new KPopupMenu(_toolbar);
/*
select all items
*/
QPixmap pix = _iconloader->loadIcon("ganttSelecttask.png", KIcon::Toolbar , 16);
if(pix.isNull()) printf("ganttSelecttask.png not found !\n");
selectMenu->insertItem(pix, i18n("Select All"), this, SLOT(selectAll()));
/*
unselect all items
*/
pix = _iconloader->loadIcon("ganttUnselecttask", KIcon::Toolbar , 16);
if(pix.isNull()) printf("ganttUnselecttask.png not found !\n");
selectMenu->insertItem(pix, i18n("Unselect All"), this, SLOT(unselectAll()));
KToolBarButton *b = _toolbar->getButton(0);
b->setDelayedPopup(selectMenu);
_toolbar->insertButton("viewmag.png", 1,
SIGNAL(clicked()),
this, SLOT(setZoom()),
true, i18n("Zoom"));
KPopupMenu *zoomMenu = new KPopupMenu(_toolbar);
pix = _iconloader->loadIcon("viewmag.png", KIcon::Toolbar , 16);
if(pix.isNull()) printf("viewmag.png not found !\n");
zoomMenu->insertItem(pix, i18n("Zoom All"), this, SLOT(zoomAll()));
zoomMenu->insertSeparator();
pix = _iconloader->loadIcon("viewmag+.png", KIcon::Toolbar , 16);
if(pix.isNull()) printf("viewmag+.png not found !\n");
zoomMenu->insertItem(pix, i18n("Zoom In +"), this, SLOT(zoomIn()));
pix = _iconloader->loadIcon("viewmag-.png", KIcon::Toolbar , 16);
if(pix.isNull()) printf("viewmag-.png not found !\n");
zoomMenu->insertItem(pix, i18n("Zoom Out -"), this, SLOT(zoomOut()));
b = _toolbar->getButton(1);
b->setDelayedPopup(zoomMenu);
_toolbar->insertButton("move.png", 2,
SIGNAL(clicked()),
this, SLOT(setMove()),
true, i18n("Move"));
return _toolbar;
}
示例2: insertOpenWithItems
int DolphinContextMenu::insertOpenWithItems(KPopupMenu* popup,
QValueVector<KService::Ptr>& openWithVector)
{
// Prepare 'Open With' sub menu. Usually a sub menu is created, where all applications
// are listed which are registered to open the item. As last entry "Other..." will be
// attached which allows to select a custom application. If no applications are registered
// no sub menu is created at all, only "Open With..." will be offered.
const KFileItemList* list = m_dolphinView->selectedItems();
assert(list != 0);
bool insertOpenWithItems = true;
const QString contextMimeType(m_fileInfo->mimetype());
KFileItemListIterator mimeIt(*list);
KFileItem* item = 0;
while (insertOpenWithItems && ((item = mimeIt.current()) != 0)) {
insertOpenWithItems = (contextMimeType == item->mimetype());
++mimeIt;
}
int openWithID = -1;
if (insertOpenWithItems) {
// fill the 'Open with' sub menu with application types
const KMimeType::Ptr mimePtr = KMimeType::findByURL(m_fileInfo->url());
KTrader::OfferList offers = KTrader::self()->query(mimePtr->name(),
"Type == 'Application'");
int index = openWithIDStart;
if (offers.count() > 0) {
KTrader::OfferList::Iterator it;
KPopupMenu* openWithMenu = new KPopupMenu();
for(it = offers.begin(); it != offers.end(); ++it) {
// The offer list from the KTrader returns duplicate
// application entries. Although this seems to be a configuration
// problem outside the scope of Dolphin, duplicated entries just
// will be skipped here.
const QString appName((*it)->name());
if (!containsEntry(openWithMenu, appName)) {
openWithMenu->insertItem((*it)->pixmap(KIcon::Small),
appName, index);
openWithVector.append(*it);
++index;
}
}
openWithMenu->insertSeparator();
openWithMenu->insertItem(i18n("&Other..."), index);
popup->insertItem(i18n("Open With"), openWithMenu);
}
else {
// No applications are registered, hence just offer
// a "Open With..." item instead of a sub menu containing
// only one entry.
popup->insertItem(i18n("Open With..."), openWithIDStart);
}
openWithID = index;
}
else {
// At least one of the selected items has a different MIME type. In this case
// just show a disabled "Open With..." entry.
popup->insertItem(i18n("Open With..."), openWithIDStart);
popup->setItemEnabled(openWithIDStart, false);
}
popup->setItemEnabled(openWithID, insertOpenWithItems);
return openWithID;
}
示例3: openViewportContextMenu
void DolphinContextMenu::openViewportContextMenu()
{
// Parts of the following code have been taken
// from the class KonqOperations located in
// libqonq/konq_operations.h of Konqueror.
// (Copyright (C) 2000 David Faure <[email protected]>)
assert(m_fileInfo == 0);
const int propertiesID = 100;
const int bookmarkID = 101;
KPopupMenu* popup = new KPopupMenu(m_dolphinView);
Dolphin& dolphin = Dolphin::mainWin();
// setup 'Create New' menu
KPopupMenu* createNewMenu = new KPopupMenu();
KAction* createFolderAction = dolphin.actionCollection()->action("create_folder");
if (createFolderAction != 0) {
createFolderAction->plug(createNewMenu);
}
createNewMenu->insertSeparator();
KAction* action = 0;
QPtrListIterator<KAction> fileGrouptIt(dolphin.fileGroupActions());
while ((action = fileGrouptIt.current()) != 0) {
action->plug(createNewMenu);
++fileGrouptIt;
}
// TODO: not used yet. See documentation of Dolphin::linkGroupActions()
// and Dolphin::linkToDeviceActions() in the header file for details.
//
//createNewMenu->insertSeparator();
//
//QPtrListIterator<KAction> linkGroupIt(dolphin.linkGroupActions());
//while ((action = linkGroupIt.current()) != 0) {
// action->plug(createNewMenu);
// ++linkGroupIt;
//}
//
//KPopupMenu* linkToDeviceMenu = new KPopupMenu();
//QPtrListIterator<KAction> linkToDeviceIt(dolphin.linkToDeviceActions());
//while ((action = linkToDeviceIt.current()) != 0) {
// action->plug(linkToDeviceMenu);
// ++linkToDeviceIt;
//}
//
//createNewMenu->insertItem(i18n("Link to Device"), linkToDeviceMenu);
const KURL& url = dolphin.activeView()->url();
if (url.protocol() == "trash")
{
popup->insertItem(i18n("Empty Deleted Items Folder"), emptyID);
}
else
{
popup->insertItem(SmallIcon("filenew"), i18n("Create New"), createNewMenu);
}
popup->insertSeparator();
KAction* pasteAction = dolphin.actionCollection()->action(KStdAction::stdName(KStdAction::Paste));
pasteAction->plug(popup);
// setup 'View Mode' menu
KPopupMenu* viewModeMenu = new KPopupMenu();
KAction* iconsMode = dolphin.actionCollection()->action("icons");
iconsMode->plug(viewModeMenu);
KAction* detailsMode = dolphin.actionCollection()->action("details");
detailsMode->plug(viewModeMenu);
KAction* previewsMode = dolphin.actionCollection()->action("previews");
previewsMode->plug(viewModeMenu);
popup->insertItem(i18n("View Mode"), viewModeMenu);
popup->insertSeparator();
popup->insertItem(i18n("Bookmark this folder"), bookmarkID);
popup->insertSeparator();
popup->insertItem(i18n("Properties..."), propertiesID);
int id = popup->exec(m_pos);
if (id == emptyID) {
KonqOperations::emptyTrash();
}
else if (id == propertiesID) {
new KPropertiesDialog(dolphin.activeView()->url());
}
else if (id == bookmarkID) {
const KURL& url = dolphin.activeView()->url();
KBookmark bookmark = EditBookmarkDialog::getBookmark(i18n("Add folder as bookmark"),
url.filename(),
url,
"bookmark");
if (!bookmark.isNull()) {
//.........这里部分代码省略.........
示例4: openItemContextMenu
void DolphinContextMenu::openItemContextMenu()
{
// Parts of the following code have been taken
// from the class KonqOperations located in
// libqonq/konq_operations.h of Konqueror.
// (Copyright (C) 2000 David Faure <[email protected]>)
assert(m_fileInfo != 0);
KPopupMenu* popup = new KPopupMenu(m_dolphinView);
Dolphin& dolphin = Dolphin::mainWin();
const KURL::List urls = m_dolphinView->selectedURLs();
const KURL& url = dolphin.activeView()->url();
if (url.protocol() == "trash")
{
popup->insertItem(i18n("&Restore"), restoreID);
}
// insert 'Cut', 'Copy' and 'Paste'
const KStdAction::StdAction actionNames[] = { KStdAction::Cut, KStdAction::Copy, KStdAction::Paste };
const int count = sizeof(actionNames) / sizeof(KStdAction::StdAction);
for (int i = 0; i < count; ++i) {
KAction* action = dolphin.actionCollection()->action(KStdAction::stdName(actionNames[i]));
if (action != 0) {
action->plug(popup);
}
}
popup->insertSeparator();
// insert 'Rename'
KAction* renameAction = dolphin.actionCollection()->action("rename");
renameAction->plug(popup);
// insert 'Move to Trash' for local URLs, otherwise insert 'Delete'
if (url.isLocalFile()) {
KAction* moveToTrashAction = dolphin.actionCollection()->action("move_to_trash");
moveToTrashAction->plug(popup);
}
else {
KAction* deleteAction = dolphin.actionCollection()->action("delete");
deleteAction->plug(popup);
}
// insert 'Bookmark this folder...' entry
// urls is a list of selected items, so insert boolmark menu if
// urls contains only one item, i.e. no multiple selection made
if (m_fileInfo->isDir() && (urls.count() == 1)) {
popup->insertItem(i18n("Bookmark this folder"), bookmarkID);
}
popup->insertSeparator();
// Insert 'Open With...' sub menu
QValueVector<KService::Ptr> openWithVector;
const int openWithID = insertOpenWithItems(popup, openWithVector);
// Insert 'Actions' sub menu
QValueVector<KDEDesktopMimeType::Service> actionsVector;
insertActionItems(popup, actionsVector);
// insert 'Properties...' entry
popup->insertSeparator();
KAction* propertiesAction = dolphin.actionCollection()->action("properties");
propertiesAction->plug(popup);
int id = popup->exec(m_pos);
if (id == restoreID ) {
KonqOperations::restoreTrashedItems(urls);
}
else if (id == bookmarkID) {
const KURL selectedURL(m_fileInfo->url());
KBookmark bookmark = EditBookmarkDialog::getBookmark(i18n("Add folder as bookmark"),
selectedURL.filename(),
selectedURL,
"bookmark");
if (!bookmark.isNull()) {
KBookmarkManager* manager = DolphinSettings::instance().bookmarkManager();
KBookmarkGroup root = manager->root();
root.addBookmark(manager, bookmark);
manager->emitChanged(root);
}
}
else if (id >= actionsIDStart) {
// one of the 'Actions' items has been selected
KDEDesktopMimeType::executeService(urls, actionsVector[id - actionsIDStart]);
}
else if (id >= openWithIDStart) {
// one of the 'Open With' items has been selected
if (id == openWithID) {
// the item 'Other...' has been selected
KRun::displayOpenWithDialog(urls);
}
else {
KService::Ptr servicePtr = openWithVector[id - openWithIDStart];
KRun::run(*servicePtr, urls);
}
}
//.........这里部分代码省略.........
示例5: contextMenu
void subversionPart::contextMenu( QPopupMenu *popup, const Context *context ) {
//no project, no subversion. Don't test on projectDirectory() here. If the user wants this project to have subversion support
//give it to him. e.g. for out of root subprojects like with qmake
if(!project())
return;
kdDebug(9036) << "contextMenu()" << endl;
if (context->hasType( Context::FileContext ) ||
context->hasType( Context::EditorContext ))
{
if (context->hasType( Context::FileContext ))
{
kdDebug(9036) << "Requested for a FileContext" << endl;
const FileContext *fcontext = static_cast<const FileContext*>( context );
m_urls = fcontext->urls();
}
else
{
kdDebug(9036) << "Requested for an EditorContext" << endl;
const EditorContext *editorContext = static_cast<const EditorContext*>( context );
m_urls = editorContext->url();
}
// THis stuff should end up into prepareOperation()
URLUtil::dump( m_urls );
if (m_urls.count() <= 0)
return;
KPopupMenu *subMenu = new KPopupMenu( popup );
if (context->hasType( Context::FileContext ))
popup->insertSeparator();
int id = subMenu->insertItem( actionCommit->text(), this, SLOT(slotCommit()) );
// CvsService let to do log and diff operations only on one file (or directory) at time
/* if (m_urls.count() == 1)
{
subMenu->insertItem( actionDiff->text(), this, SLOT(slotDiff()) );
subMenu->insertItem( actionLog->text(), this, SLOT(slotLog()) );
}*/
subMenu->setWhatsThis(id, i18n("<b>Commit file(s)</b><p>Commits file to repository if modified."));
id = subMenu->insertItem( actionAdd->text(), this, SLOT(slotAdd()) );
subMenu->setWhatsThis(id, i18n("<b>Add file to repository</b><p>Adds file to repository."));
id = subMenu->insertItem( actionRemove->text(), this, SLOT(slotDel()) );
subMenu->setWhatsThis(id, i18n("<b>Remove from repository</b><p>Removes file(s) from repository."));
id = subMenu->insertItem( actionLog->text(), this, SLOT(slotLog()) );
subMenu->setWhatsThis(id, i18n("<b>Show logs..</b><p>View Logs"));
id = subMenu->insertItem( actionBlame->text(), this, SLOT(slotBlame()) );
subMenu->setWhatsThis(id, i18n("<b>Blame 0:HEAD </b><p>Show Annotate"));
subMenu->insertSeparator();
id = subMenu->insertItem( actionDiffLocal->text(), this, SLOT(slotDiffLocal()) );
subMenu->setWhatsThis(id, i18n("<b>Diff</b><p>Diff file to local disk."));
id = subMenu->insertItem( actionDiffHead->text(), this, SLOT(slotDiffHead()) );
subMenu->setWhatsThis(id, i18n("<b>Diff</b><p>Diff file to repository."));
id = subMenu->insertItem( actionUpdate->text(), this, SLOT(slotUpdate()) );
subMenu->setWhatsThis(id, i18n("<b>Update</b><p>Updates file(s) from repository."));
id = subMenu->insertItem( actionRevert->text(), this, SLOT(slotRevert()) );
subMenu->setWhatsThis(id, i18n("<b>Revert</b><p>Undo local changes.") );
id = subMenu->insertItem( actionResolve->text(), this, SLOT(slotResolve()) );
subMenu->setWhatsThis(id, i18n("<b>Resolve</b><p>Resolve conflicting state.") );
id = subMenu->insertItem( actionSwitch->text(), this, SLOT(slotSwitch()) );
subMenu->setWhatsThis(id, i18n("<b>Switch</b><p>Switch working tree.") );
id = subMenu->insertItem( actionCopy->text(), this, SLOT(slotCopy()) );
subMenu->setWhatsThis(id, i18n("<b>Copy</b><p>Copy from/between path/URLs") );
id = subMenu->insertItem( actionMerge->text(), this, SLOT(slotMerge()) );
subMenu->setWhatsThis(id, i18n("<b>Merge</b><p>Merge difference to working copy") );
/*
subMenu->insertSeparator();
id = subMenu->insertItem( actionAddToIgnoreList->text(), this, SLOT(slotAddToIgnoreList()) );
subMenu->setWhatsThis(id, i18n("<b>Ignore in Subversion operations</b><p>Ignores file(s)."));
id = subMenu->insertItem( actionRemoveFromIgnoreList->text(), this, SLOT(slotRemoveFromIgnoreList()) );
subMenu->setWhatsThis(id, i18n("<b>Do not ignore in Subversion operations</b><p>Do not ignore file(s)."));
*/
// Now insert in parent menu
popup->insertItem( i18n("Subversion"), subMenu );
}
}
示例6: SmallIconSet
void
Amarok::coverContextMenu( QWidget *parent, QPoint point, const QString &artist, const QString &album, bool showCoverManager )
{
KPopupMenu menu;
enum { SHOW, FETCH, CUSTOM, DELETE, MANAGER };
menu.insertTitle( i18n( "Cover Image" ) );
menu.insertItem( SmallIconSet( Amarok::icon( "zoom" ) ), i18n( "&Show Fullsize" ), SHOW );
menu.insertItem( SmallIconSet( Amarok::icon( "download" ) ), i18n( "&Fetch From amazon.%1" ).arg( CoverManager::amazonTld() ), FETCH );
menu.insertItem( SmallIconSet( Amarok::icon( "files" ) ), i18n( "Set &Custom Cover" ), CUSTOM );
bool disable = !album.isEmpty(); // disable setting covers for unknown albums
menu.setItemEnabled( FETCH, disable );
menu.setItemEnabled( CUSTOM, disable );
menu.insertSeparator();
menu.insertItem( SmallIconSet( Amarok::icon( "remove" ) ), i18n( "&Unset Cover" ), DELETE );
if ( showCoverManager ) {
menu.insertSeparator();
menu.insertItem( SmallIconSet( Amarok::icon( "covermanager" ) ), i18n( "Cover &Manager" ), MANAGER );
}
#ifndef AMAZON_SUPPORT
menu.setItemEnabled( FETCH, false );
#endif
disable = !CollectionDB::instance()->albumImage( artist, album, 0 ).contains( "nocover" );
menu.setItemEnabled( SHOW, disable );
menu.setItemEnabled( DELETE, disable );
switch( menu.exec( point ) )
{
case SHOW:
CoverManager::viewCover( artist, album, parent );
break;
case DELETE:
{
const int button = KMessageBox::warningContinueCancel( parent,
i18n( "Are you sure you want to remove this cover from the Collection?" ),
QString::null,
KStdGuiItem::del() );
if ( button == KMessageBox::Continue )
CollectionDB::instance()->removeAlbumImage( artist, album );
break;
}
case FETCH:
#ifdef AMAZON_SUPPORT
CollectionDB::instance()->fetchCover( parent, artist, album, false );
break;
#endif
case CUSTOM:
{
QString artist_id; artist_id.setNum( CollectionDB::instance()->artistID( artist ) );
QString album_id; album_id.setNum( CollectionDB::instance()->albumID( album ) );
QStringList values = CollectionDB::instance()->albumTracks( artist_id, album_id );
QString startPath = ":homedir";
if ( !values.isEmpty() ) {
KURL url;
url.setPath( values.first() );
startPath = url.directory();
}
KURL file = KFileDialog::getImageOpenURL( startPath, parent, i18n("Select Cover Image File") );
if ( !file.isEmpty() )
CollectionDB::instance()->setAlbumImage( artist, album, file );
break;
}
case MANAGER:
CoverManager::showOnce( album );
break;
}
}
示例7: openContextMenu
/**
* Deal with right click's
*/
void KBinaryClock::openContextMenu() {
bool bImmutable = config()->isImmutable();
KPopupMenu *menu = new KPopupMenu();
menu->insertTitle( SmallIcon( "clock" ), i18n( "KBinaryClock" ) );
KLocale *loc = KGlobal::locale();
QDateTime dt = QDateTime::currentDateTime();
KPopupMenu *copyMenu = new KPopupMenu( menu );
copyMenu->insertItem(loc->formatDateTime(dt), 201);
copyMenu->insertItem(loc->formatDate(dt.date()), 202);
copyMenu->insertItem(loc->formatDate(dt.date(), true), 203);
copyMenu->insertItem(loc->formatTime(dt.time()), 204);
copyMenu->insertItem(loc->formatTime(dt.time(), true), 205);
copyMenu->insertItem(dt.date().toString(), 206);
copyMenu->insertItem(dt.time().toString(), 207);
copyMenu->insertItem(dt.toString(), 208);
connect( copyMenu, SIGNAL( activated(int) ), this, SLOT( slotCopyMenuActivated(int) ) );
if (!bImmutable)
{
if (kapp->authorize("user/root"))
{
menu->insertItem(SmallIcon("date"), i18n("&Adjust Date && Time..."), 103, 4);
}
menu->insertItem(SmallIcon("kcontrol"), i18n("Date && Time &Format..."), 104, 5);
}
menu->insertItem(SmallIcon("editcopy"), i18n("C&opy to Clipboard"), copyMenu, 105, 6);
if (!bImmutable)
{
menu->insertSeparator(7);
menu->insertItem(SmallIcon("configure"), i18n("&Configure KBinaryClock..."), 102, 8);
}
int result = menu->exec( QCursor::pos() );
KProcess proc;
switch (result) {
case 102:
preferences();
break;
case 103:
proc << locate("exe", "kdesu");
proc << "--nonewdcop";
proc << QString("%1 clock --lang %2")
.arg(locate("exe", "kcmshell"))
.arg(KGlobal::locale()->language());
proc.start(KProcess::DontCare);
break;
case 104:
proc << locate("exe", "kcmshell");
proc << "language";
proc.start(KProcess::DontCare);
break;
case 110:
preferences();
break;
} /* switch() */
delete menu;
}
示例8: mousePressEvent
void QueueLabel::mousePressEvent( QMouseEvent* mouseEvent )
{
hideToolTip();
if( m_timer.isActive() ) // if the user clicks again when (right after) the menu is open,
{ // (s)he probably wants to close it
m_timer.stop();
return;
}
Playlist *pl = Playlist::instance();
PLItemList &queue = pl->m_nextTracks;
if( queue.isEmpty() )
return;
int length = 0;
for( QPtrListIterator<PlaylistItem> it( queue ); *it; ++it )
{
const int s = (*it)->length();
if( s > 0 ) length += s;
}
QPtrList<KPopupMenu> menus;
menus.setAutoDelete( true );
KPopupMenu *menu = new KPopupMenu;
menus.append( menu );
const uint count = queue.count();
if( length )
menu->insertTitle( i18n( "1 Queued Track (%1)", "%n Queued Tracks (%1)", count )
.arg( MetaBundle::prettyLength( length, true ) ) );
else
menu->insertTitle( i18n( "1 Queued Track", "%n Queued Tracks", count ) );
Pana::actionCollection()->action( "queue_manager" )->plug( menu );
menu->insertItem( SmallIconSet( Pana::icon( "rewind" ) ),
count > 1 ? i18n( "&Dequeue All Tracks" ) : i18n( "&Dequeue Track" ), 0 );
menu->insertSeparator();
uint i = 1;
QPtrListIterator<PlaylistItem> it( queue );
it.toFirst();
while( i <= count )
{
for( uint n = kMin( i + MAX_TO_SHOW - 1, count ); i <= n; ++i, ++it )
menu->insertItem(
KStringHandler::rsqueeze( i18n( "%1. %2" ).arg( i ).arg( veryNiceTitle( *it ) ), 50 ), i );
if( i < count )
{
menus.append( new KPopupMenu );
menu->insertSeparator();
menu->insertItem( i18n( "1 More Track", "%n More Tracks", count - i + 1 ), menus.getLast() );
menu = menus.getLast();
}
}
menu = menus.getFirst();
int mx, my;
const int mw = menu->sizeHint().width(),
mh = menu->sizeHint().height(),
sy = mapFrom( Pana::StatusBar::instance(), QPoint( 0, 0 ) ).y(),
sheight = Pana::StatusBar::instance()->height();
const QRect dr = QApplication::desktop()->availableGeometry( this );
if( mapYToGlobal( sy ) - mh > dr.y() )
my = mapYToGlobal( sy ) - mh;
else if( mapYToGlobal( sy + sheight ) + mh < dr.y() + dr.height() )
my = mapYToGlobal( sy + sheight );
else
my = mapToGlobal( mouseEvent->pos() ).y();
mx = mapXToGlobal( 0 ) - ( mw - width() ) / 2;
int id = menu->exec( QPoint( mx, my ) );
if( id < 0 )
m_timer.start( 50, true );
else if( id == 0 ) //dequeue
{
const PLItemList dequeued = queue;
while( !queue.isEmpty() )
pl->queue( queue.getLast(), true );
emit queueChanged( PLItemList(), dequeued );
}
else
{
PlaylistItem *selected = queue.at( id - 1 );
if( selected )
pl->ensureItemCentered( selected );
}
}