⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qtmailwindow.cpp

📁 Qtopia下的邮件处理程序
💻 CPP
字号:
/******************************************************************************** Copyright (C) 2000-2006 TROLLTECH ASA. All rights reserved.**** This file is part of the Phone Edition of the Qtopia Toolkit.**** Licensees holding a valid license agreement from Trolltech or any of its** authorized distributors may use this file in accordance with** the License Agreement provided with the Licensed Software.**** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for**   information about Trolltech's Commercial License Agreements.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.********** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "qtmailwindow.h"#include "writemail.h"#ifdef QTOPIA_DESKTOP#include <qcopenvelope_qd.h>#else#include <qtopia/qcopenvelope.h>#include <qtopia/qtopiaapplication.h>#endif#include <qdatetime.h>#include <qtimer.h>#include <QDebug>QTMailWindow *QTMailWindow::self = 0;#ifdef QTOPIA_DESKTOPQTMailWindow::QTMailWindow()    : QTMailGui(){}#elseQTMailWindow::QTMailWindow(QWidget *parent, Qt::WFlags fl)    : QTMailGui(parent, fl), parentWidget( this ), noShow(false){    init();}#endifvoid QTMailWindow::init(){    self = this;    views = new QStackedWidget(parentWidget);#ifdef QTOPIA_DESKTOP    mOpenedByUser = true;#else    QtopiaApplication *qpe = (QtopiaApplication *) qApp;    mOpenedByUser = qpe->keepRunning();#endif#if 0    // Passing the correct parent for EmailClient does NOT work    // doing so causes a blank screen to be shown    emailClient = new EmailClient(views, "client"); // No tr#else    // Pass in an incorrect parent, a warning    // "QLayout::addChildWidget: EmailClient "client" in wrong parent; "    // "moved to correct parent" will be shown, but this is necessary    // to make the emailClient QMainWindow display.    // This seems to be a QMainWindow in a QStackedWidget bug    emailClient = new EmailClient(this, "client"); // No tr#endif       connect(emailClient, SIGNAL( raiseWidget(QWidget*,const QString&) ),	    this, SLOT( raiseWidget(QWidget*,const QString&) ) );    views->addWidget(emailClient);    views->setCurrentWidget(emailClient);#ifndef QTOPIA_DESKTOP    setCentralWidget(views);    setWindowTitle( emailClient->windowTitle() );#endif}QTMailWindow::~QTMailWindow(){    if (emailClient)	emailClient->cleanExit( true );}void QTMailWindow::closeEvent(QCloseEvent *e){    if (views->currentWidget() != emailClient) {	//because closeEvent is passed to this instead of sub qtmainwindows	// We have to test for w = 0 (means none visible) since mWriteMail/mReadMail would	// also be 0 if they haven't yet been created	QWidget *w = views->currentWidget();	if ( w ) {	    if (w == emailClient->mWriteMail ) {#ifdef QTOPIA_PHONE		if ( !emailClient->mWriteMail->hasContent() ) {                    emailClient->writeMailWidget()->discard();		    e->ignore();		    return;                }                if (!Qtopia::mousePreferred() && 		    emailClient->mWriteMail->keyPressAccepted()) {                    e->ignore();                    return;                }		emailClient->writeMailWidget()->tryAccept();#else		if( !emailClient->writeMailWidget()->tryAccept() )		    emailClient->writeMailWidget()->discard();		return; //call from writemail will be caught by emailclient#endif	    } else if (w == emailClient->mReadMail ) {		emailClient->readMailWidget()->close();		e->ignore();		return;	    }	    w->hide();	}		views->setCurrentWidget(emailClient);        if (emailClient->focusWidget())            emailClient->focusWidget()->setFocus();#ifndef QTOPIA_DESKTOP	setWindowTitle( emailClient->windowTitle() );#endif	emailClient->update();	// needed to work with context-help	setObjectName( w->objectName() );	e->ignore();    } else {	if (Qtopia::mousePreferred() &&	    emailClient->currentMailboxWidgetId() == emailClient->currentMessageId() ) {	    emailClient->showFolderList();	    return;	}		if (emailClient->isTransmitting()) {	    emailClient->closeAfterTransmissionsFinished();#ifndef QTOPIA_DESKTOP	    hide();#endif	    e->ignore();	    return;	} else {	    e->accept();	}    }}void QTMailWindow::forceHidden(bool hidden){    noShow = hidden;}void QTMailWindow::setVisible(bool visible){    if (noShow && visible)        return;    QTMailGui::setVisible(visible);}void QTMailWindow::setDocument(const QString &_address){    emailClient->setDocument(_address);}void QTMailWindow::raiseWidget(QWidget *w, const QString &caption){    if ( caption == "qcop") {	//the emailclient can't raise itself, only we can#ifndef QTOPIA_DESKTOP	raise();#endif    } else {	views->setCurrentWidget(w);        if (w->focusWidget())            w->focusWidget()->setFocus(); // Needed, but don't know why.#ifndef QTOPIA_DESKTOP	setWindowTitle( caption );#endif		// needed to work with context-help	setObjectName( w->objectName() );    }}QTMailWindow* QTMailWindow::singleton(){    return self;}bool QTMailWindow::openedByUser(){    return mOpenedByUser;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -