You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
197 lines
6.0 KiB
197 lines
6.0 KiB
/***************************************************************************
|
|
smb4kprintdialog - The print dialog for Smb4K
|
|
-------------------
|
|
begin : So Apr 11 2004
|
|
copyright : (C) 2004-2007 by Alexander Reinholdt
|
|
email : dustpuppy@users.berlios.de
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
* This program 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 *
|
|
* General Public License for more details. *
|
|
* *
|
|
* You should have received a copy of the GNU General Public License *
|
|
* along with this program; if not, write to the *
|
|
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, *
|
|
* MA 02110-1301 USA *
|
|
***************************************************************************/
|
|
|
|
// TQt includes
|
|
#include <tqlabel.h>
|
|
#include <tqlayout.h>
|
|
#include <tqframe.h>
|
|
|
|
// KDE includes
|
|
#include <tdelocale.h>
|
|
#include <tdemessagebox.h>
|
|
#include <kurlrequester.h>
|
|
#include <knuminput.h>
|
|
#include <kdebug.h>
|
|
|
|
// application specific includes
|
|
#include "smb4kprintdialog.h"
|
|
#include "../core/smb4kprintinfo.h"
|
|
#include "../core/smb4kcore.h"
|
|
#include "../core/smb4knetworkitems.h"
|
|
|
|
|
|
Smb4KPrintDialog::Smb4KPrintDialog( Smb4KShareItem *item, TQWidget *parent, const char *name )
|
|
: KDialogBase( Plain, i18n( "Print File" ), Details|Filler|User1|Cancel, User1, parent, name, true, true ),
|
|
m_item( item ), m_ip( TQString() ) /* will collect it in an instant */
|
|
{
|
|
setWFlags( TQt::WDestructiveClose );
|
|
|
|
if ( !m_item )
|
|
{
|
|
close();
|
|
}
|
|
|
|
setButtonGuiItem( User1, KStdGuiItem::print() );
|
|
setButtonText( Details, i18n( "Options" ) );
|
|
|
|
// Get the IP address
|
|
if ( Smb4KHostItem *host = Smb4KCore::scanner()->getHost( m_item->host(), m_item->workgroup() ) )
|
|
{
|
|
m_ip = host->ip();
|
|
}
|
|
|
|
// Bild the view:
|
|
TQFrame *frame = plainPage();
|
|
|
|
TQGridLayout *layout = new TQGridLayout( frame );
|
|
layout->setSpacing( 10 );
|
|
|
|
TQGroupBox *p = new TQGroupBox( 2, Qt::Horizontal, i18n( "Printer" ), frame );
|
|
p->setInsideSpacing( 5 );
|
|
|
|
(void) new TQLabel( i18n( "Name:" ), p );
|
|
(void) new TQLabel( m_item->name()+
|
|
(!m_item->comment().stripWhiteSpace().isEmpty() ?
|
|
" ("+m_item->comment()+")" :
|
|
""), p );
|
|
|
|
// (void) new TQLabel( i18n( "Comment:" ), p );
|
|
// (void) new TQLabel( m_item->comment(), p );
|
|
|
|
(void) new TQLabel( i18n( "Host:" ), p );
|
|
(void) new TQLabel( m_item->host(), p );
|
|
|
|
(void) new TQLabel( i18n( "IP address:" ), p );
|
|
(void) new TQLabel( m_ip.stripWhiteSpace().isEmpty() ?
|
|
i18n( "Unknown" ) :
|
|
m_ip,
|
|
p );
|
|
|
|
(void) new TQLabel( i18n( "Workgroup:" ), p );
|
|
(void) new TQLabel( m_item->workgroup(), p );
|
|
|
|
TQGroupBox *f = new TQGroupBox( 2, Qt::Horizontal, i18n( "File" ), frame );
|
|
f->setInsideSpacing( 5 );
|
|
|
|
(void) new TQLabel( i18n( "File:" ), f );
|
|
KURLRequester *requester = new KURLRequester( TQString(), f, "URL" );
|
|
requester->setMode( KFile::File | KFile::LocalOnly );
|
|
|
|
TQGroupBox *s = new TQGroupBox( 2, Qt::Horizontal, i18n( "Options" ), frame );
|
|
s->setInsideSpacing( 5 );
|
|
|
|
setDetailsWidget( s );
|
|
|
|
(void) new TQLabel( i18n( "Copies:" ), s );
|
|
KIntNumInput *cp = new KIntNumInput( 1, s, 10, "Copies" );
|
|
cp->setMinValue( 1 );
|
|
|
|
layout->addWidget( p, 0, 0, 0 );
|
|
layout->addWidget( f, 1, 0, 0 );
|
|
|
|
setFixedSize( (sizeHint().width() > 350 ? sizeHint().width() : 350), sizeHint().height() );
|
|
|
|
enableButton( User1, false );
|
|
|
|
connect( requester, TQT_SIGNAL( textChanged( const TQString & ) ),
|
|
this, TQT_SLOT( slotInputValueChanged( const TQString & ) ) );
|
|
}
|
|
|
|
|
|
Smb4KPrintDialog::~ Smb4KPrintDialog()
|
|
{
|
|
// Do not delete the pointer to the Smb4KShareObject here!
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// TQT_SLOT IMPLEMENTATIONS
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
void Smb4KPrintDialog::slotUser1()
|
|
{
|
|
KURLRequester *url = static_cast<KURLRequester *>( TQT_TQWIDGET(child( "URL", "KURLRequester", true )) );
|
|
KIntNumInput *copies = static_cast<KIntNumInput *>( TQT_TQWIDGET(child( "Copies", "KIntNumInput", true )) );
|
|
|
|
if ( url && copies )
|
|
{
|
|
if ( !url->url().stripWhiteSpace().isEmpty() )
|
|
{
|
|
if ( Smb4KCore::print()->print( new Smb4KPrintInfo( m_item, m_ip, url->url().stripWhiteSpace(), copies->value() ) ) )
|
|
{
|
|
enableButton( User1, false );
|
|
|
|
connect( Smb4KCore::print(), TQT_SIGNAL( state( int ) ), this, TQT_SLOT( slotPrintStateChanged( int ) ) );
|
|
}
|
|
else
|
|
{
|
|
// FIXME: Should we report an error here?
|
|
}
|
|
}
|
|
else
|
|
{
|
|
KMessageBox::error( this, i18n( "You haven't specified a file." ) );
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void Smb4KPrintDialog::slotCancel()
|
|
{
|
|
if ( Smb4KCore::printIsRunning() )
|
|
{
|
|
Smb4KCore::print()->abort();
|
|
}
|
|
|
|
KDialogBase::slotCancel();
|
|
}
|
|
|
|
|
|
void Smb4KPrintDialog::slotPrintStateChanged( int state )
|
|
{
|
|
switch ( state )
|
|
{
|
|
case PRINT_STOP:
|
|
{
|
|
accept();
|
|
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void Smb4KPrintDialog::slotInputValueChanged( const TQString &text )
|
|
{
|
|
enableButton( User1, !text.isEmpty() );
|
|
}
|
|
|
|
|
|
#include "smb4kprintdialog.moc"
|