[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdewebdev/quanta/messages
From:       Michal Rudolf <mrudolf () kdewebdev ! org>
Date:       2004-04-06 13:29:40
Message-ID: 20040406132940.D852499F5 () office ! kde ! org
[Download RAW message or body]

CVS commit by mrudolf: 

Fixes bug #74625: cannot copy text from "Message output" window


  M +23 -2     messageoutput.cpp   1.29
  M +11 -4     messageoutput.h   1.18


--- kdewebdev/quanta/messages/messageoutput.cpp  #1.28:1.29
@@ -18,4 +18,7 @@
 #include <klocale.h>
 #include <kdebug.h>
+#include <kapplication.h>
+#include <qpopupmenu.h>
+#include <qclipboard.h>
 
 #include "messageoutput.h"
@@ -25,5 +28,5 @@ MessageOutput::MessageOutput(QWidget *pa
   : QListBox(parent,name)
 {
-  max_items = 200;
+  m_maxItems = 200;
 
   QPalette pal = palette();
@@ -33,5 +36,11 @@ MessageOutput::MessageOutput(QWidget *pa
   setFocusPolicy( NoFocus );
 
+  m_popupMenu = new QPopupMenu(this);
+  m_popupMenu->insertItem( i18n("Copy"), this, SLOT(copyContent()) ) ;
+  
   connect( this, SIGNAL(selected(QListBoxItem*)), SLOT(clickItem(QListBoxItem*)) );
+  connect(this, SIGNAL(contextMenuRequested(QListBoxItem*, const QPoint&)),
+     this, SLOT(showMenu(QListBoxItem*, const QPoint&)));
+
 }
 
@@ -79,5 +88,5 @@ void MessageOutput::showMessage(const QS
 void MessageOutput::checkMaxItems()
 {
-  if ( count() >= max_items )
+  if ( count() >= m_maxItems )
     removeItem( index(firstItem()) );
 }
@@ -93,4 +102,16 @@ void MessageOutput::clickItem( QListBoxI
 }
 
+void MessageOutput::showMenu( QListBoxItem*, const QPoint& l_point )
+{
+  m_popupMenu->exec(l_point);
+}
+
+void MessageOutput::copyContent()
+{
+  QString content;
+  for (int i=0; i<count(); i++)
+    content.append(text(i) + "\n");  
+  kapp->clipboard()->setText(content, QClipboard::Clipboard);
+}
 
 #include "messageoutput.moc"

--- kdewebdev/quanta/messages/messageoutput.h  #1.17:1.18
@@ -22,4 +22,5 @@
 
 class KProcess;
+class QPopupMenu;
 
 /**class for displaing of
@@ -40,9 +42,11 @@ public slots:
   void showMessage(const QString& s );
   void addToLastItem(const QString& s );
+  // Copy message content to clipboard
+  void copyContent();
 
 public:
-  uint maxItems() const { return max_items; }
-  void setMaxItems( uint items ) {  max_items = items; }
-  /** remove first items , if count > max_items  */
+  uint maxItems() const { return m_maxItems; }
+  void setMaxItems( uint items ) {  m_maxItems = items; }
+  /** remove first items , if count > m_maxItem  */
   void checkMaxItems();
 
@@ -52,7 +56,10 @@ signals:
 protected slots:
   void clickItem( QListBoxItem *);
+  // Show context menu
+  void showMenu(QListBoxItem*, const QPoint& );
 
 private:
-  uint max_items;
+  uint m_maxItems;
+  QPopupMenu* m_popupMenu;
 };
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic