summaryrefslogtreecommitdiffstats
path: root/kbarcode/barcodeprinterdlg.cpp
blob: 4a760919450cf8575b5905643d97771e0481fa09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
/***************************************************************************
                         barcodeprinterdlg.cpp  -  description
                             -------------------
    begin                : Fri Oct 01 2004
    copyright            : (C) 2004 by Dominik Seichter
    email                : domseichter@web.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.                                   *
 *                                                                         *
 ***************************************************************************/

#include "barcodeprinterdlg.h"
#include "printersettings.h"

#include <kcombobox.h>
#include <klocale.h>
#include <kurlrequester.h>

#include <tqcheckbox.h>
#include <tqlabel.h>
#include <tqlayout.h>
#include <tqvbuttongroup.h> 

BarcodePrinterDlg::BarcodePrinterDlg(TQWidget *parent, const char *name)
    : KDialogBase( KDialogBase::Plain, i18n("Barcode Printer"),
      KDialogBase::Ok | KDialogBase::Cancel, KDialogBase::Ok, parent,name)
{
    TQGridLayout* tqlayout = new TQGridLayout( plainPage(), 6, 6 );
    
    TQLabel* label = new TQLabel( i18n("&Output Format:"), plainPage() );
    comboFormat = new KComboBox( false, plainPage() );
    label->setBuddy( comboFormat );
    
    checkFile = new TQCheckBox( i18n("&Print to File"), plainPage() );
    
    label2 = new TQLabel( i18n("&Filename:"), plainPage() );
    requester = new KURLRequester( plainPage() );
    label2->setBuddy( requester );

    label3 = new TQLabel( i18n("&Device:"), plainPage() );
    comboDevice = new KComboBox( true, plainPage() );
    label3->setBuddy( comboDevice );
    
    tqlayout->addWidget( label, 0, 0 );
    tqlayout->addMultiCellWidget( comboFormat, 0, 0, 1, 2 );
    tqlayout->addMultiCellWidget( checkFile, 1, 1, 1, 2 );
    tqlayout->addWidget( label2, 2, 0 );
    tqlayout->addWidget( requester, 2, 1 );
    tqlayout->addWidget( label3, 3, 0 );
    tqlayout->addMultiCellWidget( comboDevice, 3, 3, 1, 2 );
    
    comboFormat->insertItem( i18n("TEC Printer (TEC)") );
    comboFormat->insertItem( i18n("Zebra Printer (ZPL)") );
    comboFormat->insertItem( i18n("Intermec Printer (IPL)") );
    comboFormat->insertItem( i18n("EPCL Printer (EPCL)") );
    
    // do not translate unix devicenames...
    comboDevice->insertItem( "/dev/lp0" );
    comboDevice->insertItem( "/dev/lp1" );
    comboDevice->insertItem( "/dev/lp2" );
    comboDevice->insertItem( "/dev/usb/lp0" );
    comboDevice->insertItem( "/dev/usb/lp1" );
    comboDevice->insertItem( "/dev/usb/lp2" );
    
    connect( checkFile, TQT_SIGNAL( clicked() ), this, TQT_SLOT( enableControls() ) );

//    KFileDialog fd( TQString(), "*.zpl|Zebra Printer Language (*.zpl)\n*.ipl|Intermec Printer Language (*.ipl)", this, "fd", true );
    
    enableControls();
}


BarcodePrinterDlg::~BarcodePrinterDlg()
{
}

void BarcodePrinterDlg::enableControls()
{
    bool b = checkFile->isChecked();
    label2->setEnabled( b );
    requester->setEnabled( b );
    
    label3->setEnabled( !b );
    comboDevice->setEnabled( !b );
}

int BarcodePrinterDlg::outputFormat() const
{
    switch( comboFormat->currentItem() )
    {
        case 0:
            return PrinterSettings::TEC;
        case 1:
            return PrinterSettings::ZEBRA;
        case 2:
            return PrinterSettings::INTERMEC;
        case 3:
            return PrinterSettings::EPCL;
        default:
            return -1;
    }
}

bool BarcodePrinterDlg::printToFile() const
{
    return checkFile->isChecked();
}

const TQString BarcodePrinterDlg::deviceName() const
{
    return comboDevice->currentText();
}

const TQString BarcodePrinterDlg::fileName() const
{
    return requester->url();
}

#include "barcodeprinterdlg.moc"