From e16866e072f94410321d70daedbcb855ea878cac Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 6 Nov 2011 15:56:40 -0600 Subject: Actually move the kde files that were renamed in the last commit --- tdeprint/management/kmwbackend.cpp | 177 +++++++++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 tdeprint/management/kmwbackend.cpp (limited to 'tdeprint/management/kmwbackend.cpp') diff --git a/tdeprint/management/kmwbackend.cpp b/tdeprint/management/kmwbackend.cpp new file mode 100644 index 000000000..e39b52f8d --- /dev/null +++ b/tdeprint/management/kmwbackend.cpp @@ -0,0 +1,177 @@ +/* + * This file is part of the KDE libraries + * Copyright (c) 2001 Michael Goffioul + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License version 2 as published by the Free Software Foundation. + * + * 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 "kmwbackend.h" +#include "kmwizard.h" +#include "kmprinter.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +class KRadioButton : public TQRadioButton +{ +public: + KRadioButton(const TQString& txt, TQWidget *parent = 0, const char *name = 0); +}; + +KRadioButton::KRadioButton(const TQString& txt, TQWidget *parent, const char *name) +: TQRadioButton(txt,parent,name) +{ + setCursor(KCursor::handCursor()); +} + +//******************************************************************************************************** + +KMWBackend::KMWBackend(TQWidget *parent, const char *name) +: KMWizardPage(parent,name) +{ + m_ID = KMWizard::Backend; + m_title = i18n("Backend Selection"); + + m_buttons = new TQButtonGroup(this); + m_buttons->hide(); + + m_layout = new TQVBoxLayout(this, 0, KDialog::spacingHint()); + m_layout->addStretch(1); + m_count = 0; +} + +bool KMWBackend::isValid(TQString& msg) +{ + if (!m_buttons->selected()) + { + msg = i18n("You must select a backend."); + return false; + } + return true; +} + +void KMWBackend::initPrinter(KMPrinter *p) +{ + TQString s = p->option("kde-backend"); + int ID(-1); + + if (!s.isEmpty()) + ID = s.toInt(); + else + { + s = p->deviceProtocol(); + // extract protocol + if (s == "parallel" || s == "serial" || s == "usb") ID = KMWizard::Local; + else if (s == "smb") ID = KMWizard::SMB; + else if (s == "ipp" || s == "http") ID = KMWizard::IPP; + else if (s == "lpd") ID = KMWizard::LPD; + else if (s == "socket") ID = KMWizard::TCP; + else if (s == "file") ID = KMWizard::File; + else if (p->members().count() > 0) ID = KMWizard::Class; + } + + if (m_buttons->find(ID)) + m_buttons->setButton(ID); +} + +void KMWBackend::updatePrinter(KMPrinter *p) +{ + int ID = m_buttons->id(m_buttons->selected()); + if (ID == KMWizard::Class) p->setType(KMPrinter::Class); + else p->setType(KMPrinter::Printer); + p->setOption("kde-backend",TQString::number(ID)); + TQString s = m_buttons->selected()->text(); + s.replace(TQRegExp("&(?=\\w)"), TQString::tqfromLatin1("")); + p->setOption("kde-backend-description",s); + setNextPage((m_map.contains(ID) ? m_map[ID] : KMWizard::Error)); +} + +void KMWBackend::addBackend( int ID, bool on, int nextpage ) +{ + switch ( ID ) + { + case KMWizard::Local: + addBackend( ID, i18n("&Local printer (parallel, serial, USB)"), on, + i18n( "

Locally-connected printer

" + "

Use this for a printer connected " + "to the computer via a parallel, serial or USB port.

" ), + nextpage ); + break; + case KMWizard::SMB: + addBackend( ID, i18n("&SMB shared printer (Windows)"), on, + i18n( "

Shared Windows printer

" + "

Use this for a printer installed " + "on a Windows server and shared on the network using the SMB " + "protocol (samba).

" ), + nextpage ); + break; + case KMWizard::LPD: + addBackend( ID, i18n("&Remote LPD queue"), on, + i18n( "

Print queue on a remote LPD server

" + "

Use this for a print queue " + "existing on a remote machine running a LPD print server.

" ), + nextpage ); + break; + case KMWizard::TCP: + addBackend( ID, i18n("Ne&twork printer (TCP)"), on, + i18n( "

Network TCP printer

" + "

Use this for a network-enabled printer " + "using TCP (usually on port 9100) as communication protocol. Most " + "network printers can use this mode.

" ), + nextpage ); + break; + case -1: + addBackend( ID, TQString::null, on, TQString::null, nextpage ); + break; + default: + kdError( 500 ) << "Non standard wizard page ID: " << ID << endl; + } +} + +void KMWBackend::addBackend(int ID, const TQString& txt, bool on, const TQString& whatsThis, int nextpage) +{ + if (ID == -1) + { + KSeparator* sep = new KSeparator( KSeparator::HLine, this); + m_layout->insertWidget(m_count, sep); + } + else + { + KRadioButton *btn = new KRadioButton(txt, this); + btn->setEnabled(on); + if ( !whatsThis.isEmpty() ) + TQWhatsThis::add( btn, whatsThis ); + m_buttons->insert(btn, ID); + m_map[ID] = (nextpage == -1 ? ID : nextpage); // use nextpage if specified, default to ID + m_layout->insertWidget(m_count, btn); + } + m_count++; +} + +void KMWBackend::enableBackend(int ID, bool on) +{ + TQButton *btn = static_cast(m_buttons->find(ID)); + if (btn) + btn->setEnabled(on); +} -- cgit v1.2.1