diff options
Diffstat (limited to 'kioslave/http/kcookiejar/kcookiewin.cpp')
-rw-r--r-- | kioslave/http/kcookiejar/kcookiewin.cpp | 382 |
1 files changed, 0 insertions, 382 deletions
diff --git a/kioslave/http/kcookiejar/kcookiewin.cpp b/kioslave/http/kcookiejar/kcookiewin.cpp deleted file mode 100644 index 57a22f62c..000000000 --- a/kioslave/http/kcookiejar/kcookiewin.cpp +++ /dev/null @@ -1,382 +0,0 @@ -/* -This file is part of KDE - - Copyright (C) 2000- Waldo Bastian <bastian@kde.org> - Copyright (C) 2000- Dawit Alemayehu <adawit@kde.org> - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ -//---------------------------------------------------------------------------- -// -// KDE File Manager -- HTTP Cookie Dialogs -// $Id$ - -// The purpose of the QT_NO_TOOLTIP and QT_NO_WHATSTHIS ifdefs is because -// this file is also used in Konqueror/Embedded. One of the aims of -// Konqueror/Embedded is to be a small as possible to fit on embedded -// devices. For this it's also useful to strip out unneeded features of -// Qt, like for example TQToolTip or TQWhatsThis. The availability (or the -// lack thereof) can be determined using these preprocessor defines. -// The same applies to the QT_NO_ACCEL ifdef below. I hope it doesn't make -// too much trouble... (Simon) - -#include <tqhbox.h> -#include <tqvbox.h> -#include <tqaccel.h> -#include <tqlabel.h> -#include <tqwidget.h> -#include <tqlayout.h> -#include <tqgroupbox.h> -#include <tqdatetime.h> -#include <tqmessagebox.h> -#include <tqpushbutton.h> -#include <tqradiobutton.h> -#include <tqvbuttongroup.h> - -#ifndef QT_NO_TOOLTIP -#include <tqtooltip.h> -#endif - -#ifndef QT_NO_WHATSTHIS -#include <tqwhatsthis.h> -#endif - -#include <kidna.h> -#include <twin.h> -#include <klocale.h> -#include <kglobal.h> -#include <kurllabel.h> -#include <klineedit.h> -#include <kiconloader.h> -#include <kapplication.h> - -#ifdef Q_WS_X11 -#include <X11/Xlib.h> -#endif - -#include "kcookiejar.h" -#include "kcookiewin.h" - -KCookieWin::KCookieWin( TQWidget *parent, KHttpCookieList cookieList, - int defaultButton, bool showDetails ) - :KDialog( parent, "cookiealert", true ) -{ -#ifndef Q_WS_QWS //FIXME(E): Implement for Qt Embedded - setCaption( i18n("Cookie Alert") ); - setIcon( SmallIcon("cookie") ); - // all cookies in the list should have the same window at this time, so let's take the first -# ifdef Q_WS_X11 - if( cookieList.first()->windowIds().count() > 0 ) - { - XSetTransientForHint( tqt_xdisplay(), winId(), cookieList.first()->windowIds().first()); - } - else - { - // No window associated... make sure the user notices our dialog. - KWin::setState( winId(), NET::KeepAbove ); - kapp->updateUserTimestamp(); - } -# endif -#endif - // Main widget's layout manager... - TQVBoxLayout* vlayout = new TQVBoxLayout( this, KDialog::marginHint(), KDialog::spacingHint() ); - vlayout->setResizeMode( TQLayout::Fixed ); - - // Cookie image and message to user - TQHBox* hBox = new TQHBox( this ); - hBox->setSpacing( KDialog::spacingHint() ); - TQLabel* icon = new TQLabel( hBox ); - icon->setPixmap( TQMessageBox::standardIcon(TQMessageBox::Warning) ); - icon->setAlignment( Qt::AlignCenter ); - icon->setFixedSize( 2*icon->sizeHint() ); - - int count = cookieList.count(); - - TQVBox* vBox = new TQVBox( hBox ); - TQString txt = i18n("You received a cookie from", - "You received %n cookies from", count); - TQLabel* lbl = new TQLabel( txt, vBox ); - lbl->setAlignment( Qt::AlignCenter ); - KHttpCookiePtr cookie = cookieList.first(); - - TQString host (cookie->host()); - int pos = host.find(':'); - if ( pos > 0 ) - { - TQString portNum = host.left(pos); - host.remove(0, pos+1); - host += ':'; - host += portNum; - } - - txt = TQString("<b>%1</b>").arg( KIDNA::toUnicode(host) ); - if (cookie->isCrossDomain()) - txt += i18n(" <b>[Cross Domain!]</b>"); - lbl = new TQLabel( txt, vBox ); - lbl->setAlignment( Qt::AlignCenter ); - lbl = new TQLabel( i18n("Do you want to accept or reject?"), vBox ); - lbl->setAlignment( Qt::AlignCenter ); - vlayout->addWidget( hBox, 0, Qt::AlignLeft ); - - // Cookie Details dialog... - m_detailView = new KCookieDetail( cookieList, count, this ); - vlayout->addWidget( m_detailView ); - m_showDetails = showDetails; - m_showDetails ? m_detailView->show():m_detailView->hide(); - - // Cookie policy choice... - m_btnGrp = new TQVButtonGroup( i18n("Apply Choice To"), this ); - m_btnGrp->setRadioButtonExclusive( true ); - - txt = (count == 1)? i18n("&Only this cookie") : i18n("&Only these cookies"); - TQRadioButton* rb = new TQRadioButton( txt, m_btnGrp ); -#ifndef QT_NO_WHATSTHIS - TQWhatsThis::add( rb, i18n("Select this option to accept/reject only this cookie. " - "You will be prompted if another cookie is received. " - "<em>(see WebBrowsing/Cookies in the Control Center)</em>." ) ); -#endif - m_btnGrp->insert( rb ); - rb = new TQRadioButton( i18n("All cookies from this do&main"), m_btnGrp ); -#ifndef QT_NO_WHATSTHIS - TQWhatsThis::add( rb, i18n("Select this option to accept/reject all cookies from " - "this site. Choosing this option will add a new policy for " - "the site this cookie originated from. This policy will be " - "permanent until you manually change it from the Control Center " - "<em>(see WebBrowsing/Cookies in the Control Center)</em>.") ); -#endif - m_btnGrp->insert( rb ); - rb = new TQRadioButton( i18n("All &cookies"), m_btnGrp ); -#ifndef QT_NO_WHATSTHIS - TQWhatsThis::add( rb, i18n("Select this option to accept/reject all cookies from " - "anywhere. Choosing this option will change the global " - "cookie policy set in the Control Center for all cookies " - "<em>(see WebBrowsing/Cookies in the Control Center)</em>.") ); -#endif - m_btnGrp->insert( rb ); - vlayout->addWidget( m_btnGrp ); - - if ( defaultButton > -1 && defaultButton < 3 ) - m_btnGrp->setButton( defaultButton ); - else - m_btnGrp->setButton( 1 ); - - // Accept/Reject buttons - TQWidget* bbox = new TQWidget( this ); - TQBoxLayout* bbLay = new TQHBoxLayout( bbox ); - bbLay->setSpacing( KDialog::spacingHint() ); - TQPushButton* btn = new TQPushButton( i18n("&Accept"), bbox ); - btn->setDefault( true ); - btn->setFocus(); - connect( btn, TQT_SIGNAL(clicked()), TQT_SLOT(accept()) ); - bbLay->addWidget( btn ); - btn = new TQPushButton( i18n("&Reject"), bbox ); - connect( btn, TQT_SIGNAL(clicked()), TQT_SLOT(reject()) ); - bbLay->addWidget( btn ); - bbLay->addStretch( 1 ); -#ifndef QT_NO_ACCEL - TQAccel* a = new TQAccel( this ); - a->connectItem( a->insertItem(Qt::Key_Escape), btn, TQT_SLOT(animateClick()) ); -#endif - - m_button = new TQPushButton( bbox ); - m_button->setText( m_showDetails ? i18n("&Details <<"):i18n("&Details >>") ); - connect( m_button, TQT_SIGNAL(clicked()), TQT_SLOT(slotCookieDetails()) ); - bbLay->addWidget( m_button ); -#ifndef QT_NO_WHATSTHIS - TQWhatsThis::add( m_button, i18n("See or modify the cookie information") ); -#endif - - - vlayout->addWidget( bbox ); - setFixedSize( sizeHint() ); -} - -KCookieWin::~KCookieWin() -{ -} - -void KCookieWin::slotCookieDetails() -{ - if ( m_detailView->isVisible() ) - { - m_detailView->setMaximumSize( 0, 0 ); - m_detailView->adjustSize(); - m_detailView->hide(); - m_button->setText( i18n( "&Details >>" ) ); - m_showDetails = false; - } - else - { - m_detailView->setMaximumSize( 1000, 1000 ); - m_detailView->adjustSize(); - m_detailView->show(); - m_button->setText( i18n( "&Details <<" ) ); - m_showDetails = true; - } -} - -KCookieAdvice KCookieWin::advice( KCookieJar *cookiejar, KHttpCookie* cookie ) -{ - int result = exec(); - - cookiejar->setShowCookieDetails ( m_showDetails ); - - KCookieAdvice advice = (result==TQDialog::Accepted) ? KCookieAccept:KCookieReject; - - int preferredPolicy = m_btnGrp->id( m_btnGrp->selected() ); - cookiejar->setPreferredDefaultPolicy( preferredPolicy ); - - switch ( preferredPolicy ) - { - case 2: - cookiejar->setGlobalAdvice( advice ); - break; - case 1: - cookiejar->setDomainAdvice( cookie, advice ); - break; - case 0: - default: - break; - } - return advice; -} - -KCookieDetail::KCookieDetail( KHttpCookieList cookieList, int cookieCount, - TQWidget* parent, const char* name ) - :TQGroupBox( parent, name ) -{ - setTitle( i18n("Cookie Details") ); - TQGridLayout* grid = new TQGridLayout( this, 9, 2, - KDialog::spacingHint(), - KDialog::marginHint() ); - grid->addRowSpacing( 0, fontMetrics().lineSpacing() ); - grid->setColStretch( 1, 3 ); - - TQLabel* label = new TQLabel( i18n("Name:"), this ); - grid->addWidget( label, 1, 0 ); - m_name = new KLineEdit( this ); - m_name->setReadOnly( true ); - m_name->setMaximumWidth( fontMetrics().maxWidth() * 25 ); - grid->addWidget( m_name, 1 ,1 ); - - //Add the value - label = new TQLabel( i18n("Value:"), this ); - grid->addWidget( label, 2, 0 ); - m_value = new KLineEdit( this ); - m_value->setReadOnly( true ); - m_value->setMaximumWidth( fontMetrics().maxWidth() * 25 ); - grid->addWidget( m_value, 2, 1); - - label = new TQLabel( i18n("Expires:"), this ); - grid->addWidget( label, 3, 0 ); - m_expires = new KLineEdit( this ); - m_expires->setReadOnly( true ); - m_expires->setMaximumWidth(fontMetrics().maxWidth() * 25 ); - grid->addWidget( m_expires, 3, 1); - - label = new TQLabel( i18n("Path:"), this ); - grid->addWidget( label, 4, 0 ); - m_path = new KLineEdit( this ); - m_path->setReadOnly( true ); - m_path->setMaximumWidth( fontMetrics().maxWidth() * 25 ); - grid->addWidget( m_path, 4, 1); - - label = new TQLabel( i18n("Domain:"), this ); - grid->addWidget( label, 5, 0 ); - m_domain = new KLineEdit( this ); - m_domain->setReadOnly( true ); - m_domain->setMaximumWidth( fontMetrics().maxWidth() * 25 ); - grid->addWidget( m_domain, 5, 1); - - label = new TQLabel( i18n("Exposure:"), this ); - grid->addWidget( label, 6, 0 ); - m_secure = new KLineEdit( this ); - m_secure->setReadOnly( true ); - m_secure->setMaximumWidth( fontMetrics().maxWidth() * 25 ); - grid->addWidget( m_secure, 6, 1 ); - - if ( cookieCount > 1 ) - { - TQPushButton* btnNext = new TQPushButton( i18n("Next cookie","&Next >>"), this ); - btnNext->setFixedSize( btnNext->sizeHint() ); - grid->addMultiCellWidget( btnNext, 8, 8, 0, 1 ); - connect( btnNext, TQT_SIGNAL(clicked()), TQT_SLOT(slotNextCookie()) ); -#ifndef QT_NO_TOOLTIP - TQToolTip::add( btnNext, i18n("Show details of the next cookie") ); -#endif - } - m_cookieList = cookieList; - m_cookie = 0; - slotNextCookie(); -} - -KCookieDetail::~KCookieDetail() -{ -} - -void KCookieDetail::slotNextCookie() -{ - KHttpCookiePtr cookie = m_cookieList.first(); - if (m_cookie) while(cookie) - { - if (cookie == m_cookie) - { - cookie = m_cookieList.next(); - break; - } - cookie = m_cookieList.next(); - } - m_cookie = cookie; - if (!m_cookie) - m_cookie = m_cookieList.first(); - - if ( m_cookie ) - { - m_name->setText( m_cookie->name() ); - m_value->setText( ( m_cookie->value() ) ); - if ( m_cookie->domain().isEmpty() ) - m_domain->setText( i18n("Not specified") ); - else - m_domain->setText( m_cookie->domain() ); - m_path->setText( m_cookie->path() ); - TQDateTime cookiedate; - cookiedate.setTime_t( m_cookie->expireDate() ); - if ( m_cookie->expireDate() ) - m_expires->setText( TDEGlobal::locale()->formatDateTime(cookiedate) ); - else - m_expires->setText( i18n("End of Session") ); - TQString sec; - if (m_cookie->isSecure()) - { - if (m_cookie->isHttpOnly()) - sec = i18n("Secure servers only"); - else - sec = i18n("Secure servers, page scripts"); - } - else - { - if (m_cookie->isHttpOnly()) - sec = i18n("Servers"); - else - sec = i18n("Servers, page scripts"); - } - m_secure->setText( sec ); - } -} - -#include "kcookiewin.moc" |