[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: proko2: kdepim/kmail [POSSIBLY UNSAFE]
From: Marc Mutz <Marc.Mutz () uni-bielefeld ! de>
Date: 2004-11-05 8:54:55
Message-ID: 20041105085455.3860E16DE9 () office ! kde ! org
[Download RAW message or body]
CVS commit by mutz:
Fix Aegypten issue #269 by providing a way to save the text of the reader. Exposes a \
bug in KHTMLPart, see kfm-devel.
A kmcommands.cpp 1.177.2.1 [POSSIBLY UNSAFE: printf] [no copyright]
A kmcommands.h 1.51.2.1 [no copyright]
A kmmainwidget.cpp 1.281.2.1 [POSSIBLY UNSAFE: \
KRun::runCommand,printf] [no copyright] A kmmainwidget.h 1.80.2.1 \
[UNKNOWN] A kmmainwin.rc 1.80.2.1
A kmreaderwin.h 1.200.2.1 [no copyright]
M +46 -0 kmreaderwin.cpp 1.777.2.5.2.4
--- kdepim/kmail/kmreaderwin.cpp #1.777.2.5.2.3:1.777.2.5.2.4
@@ -2289,4 +2289,50 @@ QString KMReaderWin::createAtmFileLink()
}
+#if 1
+namespace {
+ class SelectionSaver {
+ KHTMLPart * const part;
+ DOM::Range oldSelection;
+ public:
+ SelectionSaver( KHTMLPart * p )
+ : part( p ),
+ oldSelection( p->hasSelection() ? p->selection() : \
p->htmlDocument().createRange() ) {} +
+ ~SelectionSaver() {
+ part->setSelection( oldSelection );
+ }
+ };
+}
+
+static QString selectedTextOrAll( KHTMLPart * part ) {
+ SelectionSaver saver( part );
+ part->selectAll();
+ return part->selectedText();
+}
+#endif
+
+#if 0
+static QString bodyElementInnerText( KHTMLPart * part ) {
+ const DOM::HTMLDocument doc = part->htmlDocument();
+ if ( doc.isNull() )
+ return QString::null;
+ const DOM::HTMLElement body = doc.body();
+ if ( body.isNull() )
+ return QString::null;
+ return body.innerText().string();
+}
+
+static QString selectedTextOrAll( KHTMLPart * part ) {
+ if ( part->hasSelection() )
+ return part->selectedText();
+ else
+ return bodyElementInnerText( part );
+}
+#endif
+
+void KMReaderWin::slotSaveTextAs() {
+ ( new KMail::SaveTextAsCommand( selectedTextOrAll( mViewer ), this ) )->start();
+}
+
#include "kmreaderwin.moc"
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic