kio
skipdlg.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "kio/skipdlg.h"
00020
00021 #include <stdio.h>
00022 #include <assert.h>
00023
00024 #include <qmessagebox.h>
00025 #include <qwidget.h>
00026 #include <qlayout.h>
00027 #include <qlabel.h>
00028
00029 #include <kapplication.h>
00030 #include <klocale.h>
00031 #include <kurl.h>
00032 #include <kpushbutton.h>
00033 #include <kstdguiitem.h>
00034
00035 #ifdef Q_WS_X11
00036 #include <kwin.h>
00037 #endif
00038
00039 using namespace KIO;
00040
00041 SkipDlg::SkipDlg(QWidget *parent, bool _multi, const QString& _error_text, bool _modal ) :
00042 KDialog ( parent, "" , _modal )
00043 {
00044
00045 modal = _modal;
00046
00047
00048
00049 #ifdef Q_WS_X11 //FIXME(E): Implement for QT Embedded, mac & win32
00050 if (modal)
00051 KWin::setState( winId(), NET::StaysOnTop );
00052 #endif
00053
00054 b0 = b1 = b2 = 0L;
00055
00056 setCaption( i18n( "Information" ) );
00057
00058 b0 = new KPushButton( KStdGuiItem::cancel(), this );
00059 connect(b0, SIGNAL(clicked()), this, SLOT(b0Pressed()));
00060
00061 if ( _multi )
00062 {
00063 b1 = new QPushButton( i18n( "Skip" ), this );
00064 connect(b1, SIGNAL(clicked()), this, SLOT(b1Pressed()));
00065
00066 b2 = new QPushButton( i18n( "Auto Skip" ), this );
00067 connect(b2, SIGNAL(clicked()), this, SLOT(b2Pressed()));
00068 }
00069
00070 QVBoxLayout *vlayout = new QVBoxLayout( this, 10, 0 );
00071
00072
00073 QLabel * lb = new QLabel( _error_text, this );
00074 lb->setFixedHeight( lb->sizeHint().height() );
00075 lb->setMinimumWidth( lb->sizeHint().width() );
00076 vlayout->addWidget( lb );
00077
00078 vlayout->addSpacing( 10 );
00079
00080 QHBoxLayout* layout = new QHBoxLayout();
00081 vlayout->addLayout( layout );
00082 if ( b0 )
00083 {
00084 b0->setDefault( true );
00085 b0->setFixedSize( b0->sizeHint() );
00086 layout->addWidget( b0 );
00087 layout->addSpacing( 5 );
00088 }
00089 if ( b1 )
00090 {
00091 b1->setFixedSize( b1->sizeHint() );
00092 layout->addWidget( b1 );
00093 layout->addSpacing( 5 );
00094 }
00095 if ( b2 )
00096 {
00097 b2->setFixedSize( b2->sizeHint() );
00098 layout->addWidget( b2 );
00099 layout->addSpacing( 5 );
00100 }
00101
00102 vlayout->addStretch( 10 );
00103 vlayout->activate();
00104 resize( sizeHint() );
00105 }
00106
00107 SkipDlg::~SkipDlg()
00108 {
00109 }
00110
00111 void SkipDlg::b0Pressed()
00112 {
00113 if ( modal )
00114 done( 0 );
00115 else
00116 emit result( this, 0 );
00117 }
00118
00119 void SkipDlg::b1Pressed()
00120 {
00121 if ( modal )
00122 done( 1 );
00123 else
00124 emit result( this, 1 );
00125 }
00126
00127 void SkipDlg::b2Pressed()
00128 {
00129 if ( modal )
00130 done( 2 );
00131 else
00132 emit result( this, 2 );
00133 }
00134
00135 SkipDlg_Result KIO::open_SkipDlg( bool _multi, const QString& _error_text )
00136 {
00137 Q_ASSERT(kapp);
00138
00139 SkipDlg dlg( 0L, _multi, _error_text, true );
00140 return (SkipDlg_Result) dlg.exec();
00141 }
00142
00143 #include "skipdlg.moc"