📄 khtmlpart_p.h
字号:
#ifndef khtmlpart_p_h#define khtmlpart_p_h/* This file is part of the KDE project * * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> * 1999-2001 Lars Knoll <knoll@kde.org> * 1999-2001 Antti Koivisto <koivisto@kde.org> * 2000-2001 Simon Hausmann <hausmann@kde.org> * 2000-2001 Dirk Mueller <mueller@kde.org> * 2000 Stefan Schimanski <1Stein@gmx.de> * 2001-2003 George Stiakos <staikos@kde.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public License * along with this library; see the file COPYING.LIB. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */#include <kcursor.h>#include <klibloader.h>#include <kxmlguifactory.h>#include <kaction.h>#include <kparts/partmanager.h>#include <kparts/statusbarextension.h>#include <kparts/browserextension.h>#ifndef KHTML_NO_WALLET#include <kwallet.h>#endif#include <qguardedptr.h>#include <qmap.h>#include <qtimer.h>#include <qvaluelist.h>#include "html/html_formimpl.h"#include "khtml_run.h"#include "khtml_factory.h"#include "khtml_events.h"#include "khtml_ext.h"#include "khtml_iface.h"#include "khtml_settings.h"#include "misc/decoder.h"#include "ecma/kjs_proxy.h"class KFind;class KFindDialog;class KPopupMenu;class KSelectAction;class KURLLabel;class KJavaAppletContext;class KJSErrorDlg;namespace KIO{ class Job; class TransferJob;}namespace KParts{ class StatusBarExtension;}namespace khtml{ class KDE_EXPORT ChildFrame : public QObject { Q_OBJECT public: enum Type { Frame, IFrame, Object }; ChildFrame() : QObject (0L, "khtml_child_frame") { m_jscript = 0L; m_kjs_lib = 0; m_bCompleted = false; m_bPreloaded = false; m_type = Frame; m_bNotify = false; m_bPendingRedirection = false; } ~ChildFrame() { if (m_run) m_run->abort(); delete m_jscript; if ( m_kjs_lib) m_kjs_lib->unload(); } QGuardedPtr<khtml::RenderPart> m_frame; QGuardedPtr<KParts::ReadOnlyPart> m_part; QGuardedPtr<KParts::BrowserExtension> m_extension; QGuardedPtr<KParts::LiveConnectExtension> m_liveconnect; QString m_serviceName; QString m_serviceType; KJSProxy *m_jscript; KLibrary *m_kjs_lib; bool m_bCompleted; QString m_name; KParts::URLArgs m_args; QGuardedPtr<KHTMLRun> m_run; bool m_bPreloaded; KURL m_workingURL; Type m_type; QStringList m_params; bool m_bNotify; bool m_bPendingRedirection; protected slots: void liveConnectEvent(const unsigned long, const QString&, const KParts::LiveConnectExtension::ArgList&); };}struct KHTMLFrameList : public QValueList<khtml::ChildFrame*>{ Iterator find( const QString &name ) KDE_NO_EXPORT;};typedef KHTMLFrameList::ConstIterator ConstFrameIt;typedef KHTMLFrameList::Iterator FrameIt;static int khtml_part_dcop_counter = 0;class KHTMLWalletQueue : public QObject{ Q_OBJECT public: KHTMLWalletQueue(QObject *parent) : QObject(parent) {#ifndef KHTML_NO_WALLET wallet = 0L;#endif // KHTML_NO_WALLET } virtual ~KHTMLWalletQueue() {#ifndef KHTML_NO_WALLET delete wallet; wallet = 0L;#endif // KHTML_NO_WALLET }#ifndef KHTML_NO_WALLET KWallet::Wallet *wallet;#endif // KHTML_NO_WALLET typedef QPair<DOM::HTMLFormElementImpl*, QGuardedPtr<DOM::DocumentImpl> > Caller; typedef QValueList<Caller> CallerList; CallerList callers; QValueList<QPair<QString, QMap<QString, QString> > > savers; signals: void walletOpened(KWallet::Wallet*); public slots: void walletOpened(bool success) {#ifndef KHTML_NO_WALLET if (!success) { delete wallet; wallet = 0L; } emit walletOpened(wallet); if (wallet) { if (!wallet->hasFolder(KWallet::Wallet::FormDataFolder())) { wallet->createFolder(KWallet::Wallet::FormDataFolder()); } for (CallerList::Iterator i = callers.begin(); i != callers.end(); ++i) { if ((*i).first && (*i).second) { (*i).first->walletOpened(wallet); } } wallet->setFolder(KWallet::Wallet::FormDataFolder()); for (QValueList<QPair<QString, QMap<QString, QString> > >::Iterator i = savers.begin(); i != savers.end(); ++i) { wallet->writeMap((*i).first, (*i).second); } } callers.clear(); savers.clear(); wallet = 0L; // gave it away#endif // KHTML_NO_WALLET }};class KHTMLPartPrivate{ KHTMLPartPrivate(const KHTMLPartPrivate & other); KHTMLPartPrivate& operator=(const KHTMLPartPrivate&);public: KHTMLPartPrivate(QObject* parent) { m_doc = 0L; m_decoder = 0L; m_wallet = 0L; m_bWalletOpened = false; m_runningScripts = 0; m_job = 0L; m_bComplete = true; m_bLoadEventEmitted = true; m_cachePolicy = KIO::CC_Verify; m_manager = 0L; m_settings = new KHTMLSettings(*KHTMLFactory::defaultHTMLSettings()); m_bClearing = false; m_bCleared = false; m_zoomFactor = 100; m_bDnd = true; m_startOffset = m_endOffset = 0; m_startBeforeEnd = true; m_extendAtEnd = true; m_linkCursor = KCursor::handCursor(); m_loadedObjects = 0; m_totalObjectCount = 0; m_jobPercent = 0; m_haveEncoding = false; m_activeFrame = 0L; m_find = 0; m_findDialog = 0; m_ssl_in_use = false; m_jsedlg = 0; m_formNotification = KHTMLPart::NoNotification;#ifndef Q_WS_QWS m_javaContext = 0;#endif m_cacheId = 0; m_frameNameId = 1; m_restored = false; m_restoreScrollPosition = false; m_focusNodeNumber = -1; m_focusNodeRestored = false; m_bJScriptForce = false; m_bJScriptOverride = false; m_bJavaForce = false; m_bJavaOverride = false; m_bPluginsForce = false; m_bPluginsOverride = false; m_onlyLocalReferences = false; m_caretMode = false; m_designMode = false; m_metaRefreshEnabled = true; m_statusMessagesEnabled = true; m_bFirstData = true; m_submitForm = 0; m_delayRedirect = 0; m_autoDetectLanguage = khtml::Decoder::SemiautomaticDetection; // inherit settings from parent if(parent && parent->inherits("KHTMLPart")) { KHTMLPart* part = static_cast<KHTMLPart*>(parent); if(part->d) { m_bJScriptForce = part->d->m_bJScriptForce; m_bJScriptOverride = part->d->m_bJScriptOverride; m_bJavaForce = part->d->m_bJavaForce; m_bJavaOverride = part->d->m_bJavaOverride; m_bPluginsForce = part->d->m_bPluginsForce; m_bPluginsOverride = part->d->m_bPluginsOverride; // Same for SSL settings m_ssl_in_use = part->d->m_ssl_in_use; m_onlyLocalReferences = part->d->m_onlyLocalReferences; m_caretMode = part->d->m_caretMode; m_designMode = part->d->m_designMode; m_zoomFactor = part->d->m_zoomFactor; m_autoDetectLanguage = part->d->m_autoDetectLanguage; m_encoding = part->d->m_encoding; m_haveEncoding = part->d->m_haveEncoding; } } m_focusNodeNumber = -1; m_focusNodeRestored = false; m_opener = 0; m_openedByJS = false; m_newJSInterpreterExists = false; m_dcopobject = 0; m_jobspeed = 0; m_dcop_counter = ++khtml_part_dcop_counter;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -