[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-17 10:15:07
Message-ID: 20040417101507.6AA519A66 () office ! kde ! org
[Download RAW message or body]
CVS commit by mrudolf:
Add commands to clear message log or save it to file
M +54 -12 messageoutput.cpp 1.30
M +7 -3 messageoutput.h 1.19
--- kdewebdev/quanta/messages/messageoutput.cpp #1.29:1.30
@@ -16,9 +16,16 @@
***************************************************************************/
-#include <klocale.h>
-#include <kdebug.h>
+// KDE includes
#include <kapplication.h>
-#include <qpopupmenu.h>
+#include <kdebug.h>
+#include <kfiledialog.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kpopupmenu.h>
+
+// Qt includes
#include <qclipboard.h>
+#include <qfile.h>
+#include <qtextstream.h>
#include "messageoutput.h"
@@ -36,10 +43,13 @@ 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*)) );
+ m_popupMenu = new KPopupMenu(this);
connect(this, SIGNAL(contextMenuRequested(QListBoxItem*, const QPoint&)),
this, SLOT(showMenu(QListBoxItem*, const QPoint&)));
+ m_popupMenu->insertItem( i18n("&Copy"), this, SLOT(copyContent()) ) ;
+ m_popupMenu->insertItem( i18n("&Save..."), this, SLOT(saveContent()) ) ;
+ m_popupMenu->insertSeparator();
+ m_popupMenu->insertItem( i18n("Clear"), this, SLOT(clear()) ) ;
+
+ connect( this, SIGNAL(selected(QListBoxItem*)), SLOT(clickItem(QListBoxItem*)) );
}
@@ -107,10 +117,41 @@ void MessageOutput::showMenu( QListBoxIt
}
+QString MessageOutput::content()
+{
+ QString p_content;
+ for (uint i=0; i<count(); i++)
+ p_content.append(text(i) + "\n");
+ return p_content;
+}
+
void MessageOutput::copyContent()
{
- QString content;
- for (int i=0; i<count(); i++)
- content.append(text(i) + "\n");
- kapp->clipboard()->setText(content, QClipboard::Clipboard);
+ kapp->clipboard()->setText(content(), QClipboard::Clipboard);
+}
+
+void MessageOutput::saveContent()
+{
+ KURL url=KFileDialog::getSaveURL(QDir::currentDirPath(),
+ i18n("*.log|Log files (*.log)\n*|All files"), this, i18n("Save log file..."));
+ if (url.isEmpty())
+ return;
+
+ QFileInfo fileinfo(url.path());
+ if (fileinfo.exists() && KMessageBox::questionYesNo(0,
+ i18n("<qt>File<br><b>%1</b><br>already exists. Overwrite it?</qt>")
+ .arg(url.path())) == KMessageBox::No)
+ return;
+
+ QFile file(url.path());
+ if (!file.open(IO_WriteOnly)) {
+ KMessageBox::error(0, i18n("<qt>Cannot save log file<br><b>%1</b></qt>")
+ .arg(url.url()));
+ return;
+ }
+
+ QTextStream textfile(&file);
+ textfile << content();
+ file.close();
+
}
--- kdewebdev/quanta/messages/messageoutput.h #1.18:1.19
@@ -22,5 +22,5 @@
class KProcess;
-class QPopupMenu;
+class KPopupMenu;
/**class for displaing of
@@ -34,5 +34,6 @@ public:
MessageOutput(QWidget *parent=0, const char *name=0);
~MessageOutput();
-
+ // Return whole content as a single string with EOLs
+ QString content();
public slots:
@@ -44,4 +45,7 @@ public slots:
// Copy message content to clipboard
void copyContent();
+ // Save message content to clipboard
+ void saveContent();
+
public:
@@ -61,5 +65,5 @@ protected slots:
private:
uint m_maxItems;
- QPopupMenu* m_popupMenu;
+ KPopupMenu* m_popupMenu;
};
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic