Index: mythflix/mythflixqueue.cpp
===================================================================
--- mythflix/mythflixqueue.cpp	(revision 8440)
+++ mythflix/mythflixqueue.cpp	(working copy)
@@ -332,9 +332,11 @@
         else if (action == "PAGEDOWN")
              cursorDown(true);
         else if (action == "REMOVE")
-             removeFromQueue();
+             slotRemoveFromQueue();
         else if (action == "MOVETOTOP")
-             moveToTop();
+             slotMoveToTop();
+        else if (action == "SELECT")
+            displayOptions();
         else
             handled = false;
     }
@@ -396,8 +398,12 @@
     } 
 }
 
-void MythFlixQueue::moveToTop()
+void MythFlixQueue::slotMoveToTop()
 {
+
+    if (expectingPopup)
+        slotCancelPopup();
+
     UIListBtnTypeItem *articleUIItem = m_UIArticles->GetItemCurrent();
 
     if (articleUIItem && articleUIItem->getData())
@@ -435,8 +441,12 @@
 
 }
 
-void MythFlixQueue::removeFromQueue()
+void MythFlixQueue::slotRemoveFromQueue()
 {
+
+    if (expectingPopup)
+        slotCancelPopup();
+
     UIListBtnTypeItem *articleUIItem = m_UIArticles->GetItemCurrent();
 
     if (articleUIItem && articleUIItem->getData())
@@ -480,6 +490,42 @@
     update(m_InfoRect);
 }
 
+void MythFlixQueue::displayOptions()
+{
+
+    popup = new MythPopupBox(gContext->GetMainWindow(), "menu popup");
+
+    QLabel *label = popup->addLabel(tr("Manage Queue"),
+                                  MythPopupBox::Large, false);
+    label->setAlignment(Qt::AlignCenter | Qt::WordBreak);
+
+    QButton *topButton = popup->addButton(tr("Top Of Queue"), this,
+                     SLOT(slotMoveToTop()));
+
+    popup->addButton(tr("Remove From Queue"), this,
+                     SLOT(slotRemoveFromQueue()));
+
+    popup->addButton(tr("Cancel"), this, SLOT(slotCancelPopup()));
+
+    popup->ShowPopup(this, SLOT(slotCancelPopup()));
+
+    topButton->setFocus();
+
+    expectingPopup = true;
+
+}
+
+void MythFlixQueue::slotCancelPopup(void)
+{
+    popup->hide();
+    expectingPopup = false;
+
+    delete popup;
+    popup = NULL;
+
+    setActiveWindow();
+}
+
 // Execute an external command and return results in string
 //   probably should make this routing async vs polling like this
 //   but it would require a lot more code restructuring
Index: mythflix/mythflixqueue.h
===================================================================
--- mythflix/mythflixqueue.h	(revision 8440)
+++ mythflix/mythflixqueue.h	(working copy)
@@ -57,11 +57,11 @@
     void cursorUp(bool page=false);
     void cursorDown(bool page=false);
 
+    void displayOptions();
+
     void cancelRetrieve();
     void processAndShowNews(NewsSite *site);
 
-    void moveToTop();
-    void removeFromQueue();
     QString executeExternal(const QStringList& args, const QString& purpose);
 
     XMLParse      *m_Theme;
@@ -69,11 +69,14 @@
     UIListBtnType *m_UIArticles;
     QRect          m_ArticlesRect;
     QRect          m_InfoRect;
+    MythPopupBox  *popup;
 
     NewsSite::List m_NewsSites;
 
     QHttp         *http;
 
+    bool           expectingPopup;
+
 private slots:
     void slotViewArticle();
     void slotRetrieveNews();
@@ -83,6 +86,10 @@
     
     void slotArticleSelected(UIListBtnTypeItem *item);
 
+    void slotMoveToTop();
+    void slotRemoveFromQueue();
+    void slotCancelPopup();
+
 };
 
 #endif /* MYTHFLIXQUEUE_H */
