[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/akonadi-ports/kdepim/libmailreader
From: Andras Mantia <amantia () kde ! org>
Date: 2009-09-08 17:43:25
Message-ID: 1252431805.585684.19862.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1021264 by amantia:
Merge r1003181: convert some options to KConfigXT
Merge r1005718: fix crash when printing
M +30 -2 mailviewer.kcfg
M +42 -43 mailviewer_p.cpp
M +4 -1 mailviewer_p.h
--- branches/work/akonadi-ports/kdepim/libmailreader/mailviewer.kcfg #1021263:1021264
@@ -94,12 +94,40 @@
<default>false</default>
<label>Always decrypt messages when viewing or ask before decrypting</label>
</entry>
+
+ <entry name="MimeTreeLocation" type="Enum">
+ <label>Message Structure Viewer Placement</label>
+ <choices>
+ <choice name="top">
+ <label>Above the message pane</label>
+ </choice>
+ <choice name="bottom">
+ <label>Below the message pane</label>
+ </choice>
+ </choices>
+ <default>bottom</default>
+ </entry>
+
+ <entry name="MimeTreeMode" type="Enum">
+ <label>Message Structure Viewer</label>
+ <choices>
+ <choice name="Never">
+ <label>Show never</label>
+ </choice>
+ <choice name="Always">
+ <label>Show always</label>
+ </choice>
+ </choices>
+ <default>Never</default>
+ </entry>
+
</group>
- <group name="TextIndex">
+
+ <group name="TextIndex">
<entry name="automaticDecrypt" type="Bool" key="automaticDecrypt">
<default>true</default>
- <label></label>
+ <label></label>
</entry>
</group>
--- branches/work/akonadi-ports/kdepim/libmailreader/mailviewer_p.cpp \
#1021263:1021264 @@ -122,6 +122,11 @@
mCopyURLAction( 0 ),
mUrlOpenAction( 0 ),
mSelectAllAction( 0 ),
+ mScrollUpAction( 0 ),
+ mScrollDownAction( 0 ),
+ mScrollUpMoreAction( 0 ),
+ mScrollDownMoreAction( 0 ),
+ mToggleMimePartTreeAction( 0 ),
mSelectEncodingAction( 0 ),
mToggleFixFontAction( 0 ),
mHtmlWriter( 0 ),
@@ -149,14 +154,12 @@
mExternalWindow = ( aParent == mainWindow );
mSplitterSizes << 180 << 100;
- mMimeTreeMode = 1;
- mMimeTreeAtBottom = true;
mLastSerNum = 0;
mWaitingForSerNum = 0;
mLastStatus.clear();
mMsgDisplay = true;
mPrinting = false;
- mShowColorbar = false;
+ mIsPlainText = false;
createWidgets();
createActions();
@@ -1086,8 +1089,8 @@
mMimePartTree->clearAndResetSortOrder();
*/
mMimePartModel->setRoot( mMessage );
- showHideMimeTree( !mMessage || // treat no message as "text/plain"
- ( mMessage->contentType()->isPlainText() ) );
+ mIsPlainText = !mMessage || mMessage->contentType()->isPlainText();
+ showHideMimeTree();
NodeHelper::instance()->setOverrideCodec( mMessage, overrideCodec() );
@@ -1230,9 +1233,6 @@
}
}
}
- // save current main Content-Type before deleting mMessage
- const QByteArray rootNodeCntType = mMessage->contentType()->mediaType();
- const QByteArray rootNodeCntSubtype = mMessage->contentType()->subType();
// store message id to avoid endless recursions
/*FIXME(Andras) port it
@@ -1242,8 +1242,8 @@
kDebug() << "Invoce saving in decrypted form:";
emit replaceMsgByUnencryptedVersion(); //FIXME(Andras) actually connect and do \
the replacement on the server (see KMMainWidget::slotReplaceByUnencryptedVersion) } \
else {
- showHideMimeTree( rootNodeCntType == "text" &&
- rootNodeCntSubtype == "plain" );
+ mIsPlainText = mMessage->contentType()->isPlainText();
+ showHideMimeTree();
}
/* FIXME(Andras) port it!
aMsg->setIsBeingParsed( false );
@@ -1461,30 +1461,10 @@
if ( raction )
raction->setChecked( true );
-//FIXME(Andras) with KConfigXT the default (false) value is not written back, so if \
Kpgp::Module::getKpgp()->usePGP() is true,
-//the option is enabled even if the user explicitely disabled it -> BAD. Disable \
this code for now.
-/*
- // if the user uses OpenPGP then the color bar defaults to enabled
- // else it defaults to disabled
- mShowColorbar = reader.readEntry( "showColorbar", \
Kpgp::Module::getKpgp()->usePGP() ) ;
- // if the value defaults to enabled and KMail (with color bar) is used for
- // the first time the config dialog doesn't know this if we don't save the
- // value now
- GlobalSettings::self()->setShowColorBar( mShowColorbar );
-*/
- mMimeTreeAtBottom = reader.readEntry( "MimeTreeLocation", "bottom" ) != "top";
- const QString s = reader.readEntry( "MimeTreeMode", "smart" );
- if ( s == "never" )
- mMimeTreeMode = 0;
- else if ( s == "always" )
- mMimeTreeMode = 2;
- else
- mMimeTreeMode = 1;
-
const int mimeH = reader.readEntry( "MimePaneHeight", 100 );
const int messageH = reader.readEntry( "MessagePaneHeight", 180 );
mSplitterSizes.clear();
- if ( mMimeTreeAtBottom )
+ if ( GlobalSettings::self()->mimeTreeLocation() == \
GlobalSettings::EnumMimeTreeLocation::bottom ) mSplitterSizes << messageH << mimeH;
else
mSplitterSizes << mimeH << messageH;
@@ -1851,18 +1831,18 @@
}
-void MailViewerPrivate::showHideMimeTree( bool isPlainTextTopLevel ) {
- if ( mMimeTreeMode == 2 ||
- ( mMimeTreeMode == 1 && !isPlainTextTopLevel ) ) {
- mMimePartTree->expandToDepth( 3 );
+void MailViewerPrivate::showHideMimeTree( )
+{
+ if ( GlobalSettings::self()->mimeTreeMode() == \
GlobalSettings::EnumMimeTreeMode::Always ) mMimePartTree->show();
- }
else {
// don't rely on QSplitter maintaining sizes for hidden widgets:
- KConfigGroup reader( Global::instance()->config() , "Reader" );
+ KConfigGroup reader( Global::instance()->config() , "Reader" );
saveSplitterSizes( reader );
mMimePartTree->hide();
}
+ if ( mToggleMimePartTreeAction && ( mToggleMimePartTreeAction->isChecked() != \
mMimePartTree->isVisible() ) ) + mToggleMimePartTreeAction->setChecked( \
mMimePartTree->isVisible() ); }
@@ -1915,26 +1895,29 @@
mSplitter->insertWidget( 0, mMimePartTree );
mSplitter->setSizes( mSplitterSizes );
- if ( mMimeTreeMode == 2 && mMsgDisplay )
+ if ( GlobalSettings::self()->mimeTreeMode() == \
GlobalSettings::EnumMimeTreeMode::Always && + mMsgDisplay )
mMimePartTree->show();
else
mMimePartTree->hide();
- if ( mShowColorbar && mMsgDisplay )
+ if ( GlobalSettings::self()->showColorBar() && mMsgDisplay )
mColorBar->show();
else
mColorBar->hide();
}
-void MailViewerPrivate::saveSplitterSizes( KConfigGroup & c ) const {
+void MailViewerPrivate::saveSplitterSizes( KConfigGroup & c ) const
+{
if ( !mSplitter || !mMimePartTree )
return;
if ( mMimePartTree->isHidden() )
return; // don't rely on QSplitter maintaining sizes for hidden widgets.
- c.writeEntry( "MimePaneHeight", mSplitter->sizes()[ mMimeTreeAtBottom ? 1 : 0 ] );
- c.writeEntry( "MessagePaneHeight", mSplitter->sizes()[ mMimeTreeAtBottom ? 0 : 1 ] \
); + const bool mimeTreeAtBottom = GlobalSettings::self()->mimeTreeLocation() == \
GlobalSettings::EnumMimeTreeLocation::bottom; + c.writeEntry( "MimePaneHeight", \
mSplitter->sizes()[ mimeTreeAtBottom ? 1 : 0 ] ); + c.writeEntry( \
"MessagePaneHeight", mSplitter->sizes()[ mimeTreeAtBottom ? 0 : 1 ] ); }
void MailViewerPrivate::createWidgets() {
@@ -2112,6 +2095,12 @@
connect( mToggleFixFontAction, SIGNAL(triggered(bool)), \
SLOT(slotToggleFixedFont()) ); mToggleFixFontAction->setShortcut( QKeySequence( \
Qt::Key_X ) );
+ // Show message structure viewer
+ mToggleMimePartTreeAction = new KToggleAction( i18n( "Show Message Structure" ), \
this ); + ac->addAction( "toggle_mimeparttree", mToggleMimePartTreeAction );
+ connect( mToggleMimePartTreeAction, SIGNAL(toggled(bool)),
+ SLOT(slotToggleMimePartTree()));
+
mViewSourceAction = new KAction(i18n("&View Source"), this);
ac->addAction("view_source", mViewSourceAction );
connect(mViewSourceAction, SIGNAL(triggered(bool) ), \
SLOT(slotShowMessageSource())); @@ -2499,6 +2488,16 @@
update( MailViewer::Force );
}
+void MailViewerPrivate::slotToggleMimePartTree()
+{
+ if ( mToggleMimePartTreeAction->isChecked() )
+ GlobalSettings::self()->setMimeTreeMode( \
GlobalSettings::EnumMimeTreeMode::Always ); + else
+ GlobalSettings::self()->setMimeTreeMode( GlobalSettings::EnumMimeTreeMode::Never \
); + showHideMimeTree();
+}
+
+
void MailViewerPrivate::slotShowMessageSource()
{
/* FIXME(Andras)
@@ -2541,7 +2540,7 @@
//TODO: if the item doesn't have the payload fetched, try to fetch it? Maybe not \
here, but in setMessageItem. if ( mMessage )
{
- if ( mShowColorbar ) {
+ if ( GlobalSettings::self()->showColorBar() ) {
mColorBar->show();
} else {
mColorBar->hide();
--- branches/work/akonadi-ports/kdepim/libmailreader/mailviewer_p.h #1021263:1021264
@@ -288,7 +288,7 @@
/** Show or hide the Mime Tree Viewer if configuration
is set to smart mode. */
- void showHideMimeTree( bool isPlainTextTopLevel );
+ void showHideMimeTree();
/** View message part of type message/RFC822 in extra viewer window. */
void atmViewMsg(KMime::Content* msgPart);
@@ -399,6 +399,7 @@
/** The user toggled the "Fixed Font" flag from the view menu. */
void slotToggleFixedFont();
+ void slotToggleMimePartTree();
/** Show the message source */
void slotShowMessageSource();
@@ -527,6 +528,7 @@
*mScrollUpAction, *mScrollDownAction, *mScrollUpMoreAction, \
*mScrollDownMoreAction, *mViewSourceAction, *mSaveMessageAction; KSelectAction \
*mSelectEncodingAction; KToggleAction *mToggleFixFontAction;
+ KToggleAction *mToggleMimePartTreeAction;
KUrl mUrlClicked;
HtmlWriter * mHtmlWriter;
/** Used only to be able to connect and disconnect finished() signal
@@ -542,6 +544,7 @@
bool mShowSignatureDetails;
bool mShowAttachmentQuicklist;
bool mExternalWindow;
+ bool mIsPlainText;
QMap<EditorWatcher*, KMime::Content*> mEditorWatchers;
MailViewer *const q;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic