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.
kbarcode/kbarcode/batchwizard.h

267 lines
7.6 KiB

/***************************************************************************
batchwizard.h - description
-------------------
begin : Sun Mar 20 2005
copyright : (C) 2005 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. *
* *
***************************************************************************/
#ifndef BATCHWIZARD_H
#define BATCHWIZARD_H
#include <kwizard.h>
#include "batchiface.h"
class BatchPrinter;
class EncodingCombo;
class KComboBox;
class KCompletion;
class KIntNumInput;
class KLineEdit;
class KListBox;
class KListView;
class KPushButton;
class KURLRequester;
class QCheckBox;
class QHBox;
class QLabel;
class QListView;
class QListViewItem;
class QRadioButton;
class QTable;
class QVBox;
class QWidgetStack;
class BatchWizard : public KWizard, public BatchIface {
Q_OBJECT
public:
BatchWizard( QWidget* parent = NULL, const char* name = NULL );
~BatchWizard();
/** reimplemented DCOP method from BatchIface
* Allow the user to add an article to print to KBarcode
* @p article article number to add
* @p group use group as group name for this article
* @p count number of labels to print for this article
* @p msgbox show a messagebox if adding the item fails
*/
bool addItem( const QString & article, const QString & group, int count, bool msgbox = true );
/** reimplemented DCOP method from BatchIface
* tests wether the arctile is existing in KBarcodes database
* @p article article number to test for
*/
virtual bool existsArticle( const QString & article );
/** reimplemented DCOP method from BatchIface
* import articles from a file. The user is asked for the filename
*/
virtual void loadFromFile( const QString & url );
/** reimplemented DCOP method from BatchIface
* print immediately with current settings
* @p printer print to this printer (must be known to the system)
* @p bUserInteraction if false no dialog will pop up besides the printer dialog
*/
virtual void printNow( const QString & printer, bool bUserInteraction = true );
/** reimplemented DCOP method from BatchIface
* to allow the user to set the label to be used
* @p url path of the label which shall get printed
*/
virtual void setFilename( const QString & url );
/** reimplemented DCOP method from BatchIface
* Set the batchwizards mode to print from imported data
* and import the data from the csv file @p filname
* @p filename csv file to import
*/
virtual void setImportCsvFile( const QString & filename );
/** reimplemented DCOP method from BatchIface
* Set the batchwizards mode to print from imported data
* and import the data from the sql query @p query
* @p query sql query to execute to get on user defined variables
*/
virtual void setImportSqlQuery( const QString & query );
/** reimplemented DCOP method from BatchIface
* set the numbers of labels to print.
* the option to print without data import is activated too using
* this option
* @p n number of labels to print
*/
virtual void setNumLabels( const int n );
/** reimplemented DCOP method from BatchIface
* sets wether the user wants to print to a postscript printer,
* a barcode printer or to image files.
* @p e is of datatype BatchPrinter::EOutputFormat
*/
virtual void setOutputFormat( const int e );
/** reimplemented DCOP method from BatchIface
* allow the user to set the value and start value for
* the serial number that can be used on labels using the [serial] token
* @p val value of the serial number (e.g. TEST0002)
* @p inc the serial number is increased that much for every label
*/
virtual void setSerialNumber( const QString & val, int inc );
public slots:
/** reimplemented DCOP method from BatchIface
* import articles from the clipboard
*/
virtual void loadFromClipboard();
private slots:
void addAllItems();
void enableControls();
void customerIdChanged( int index );
void customerNameChanged( int index );
void addItem();
bool slotAddItem( const QString & article, const QString & group, int count );
void changeItem( QListViewItem* item, const QPoint &, int );
void editItem();
void removeItem();
void slotTableInsert();
void slotTableRemove();
void loadFromFile();
void slotAddAddress();
void slotAddAllAddress();
void slotRemoveAddress();
void slotRemoveAllAddress();
private:
void moveAddress( QListView* src, QListView* dst, bool bAll = false );
void fillByteArray();
void fillVarList();
bool fillVarTable();
void fillAddressList();
void setupPage1();
void setupPage2();
void setupPage3();
void setupPage4();
void setupPage5();
void setupPage10();
void setupStackPage1();
void setupStackPage2();
void setupStackPage3();
void setupStackPage4();
void setupSql();
void setupBatchPrinter( BatchPrinter* batch, int m );
void addGroupCompletion( const QString & group );
void loadData( const QString & data );
protected:
void accept();
void showPage( QWidget* w );
private:
/** m_bytearray_filename is set whenever
* the kbarcide label file has been read into
* the buffer m_bytearray. Therefore we have only
* to re-read the bytearray when the filename was
* changed by the user.
*/
QString m_bytearray_filename;
QByteArray m_bytearray;
QWidget* page1;
QWidget* page2;
QWidgetStack* page3;
QVBox* page4;
QVBox* page5;
QWidget* page10;
QVBox* stack1;
QHBox* stack2;
QVBox* stack3;
QWidget* stack4;
QVBox* imageBox;
QLabel* labelInfo;
QLabel* labelSqlQuery;
QLabel* labelCsvFile;
QLabel* labelEncoding;
QRadioButton* radioSqlArticles;
QRadioButton* radioVarImport;
QRadioButton* radioSimple;
QRadioButton* radioAddressBook;
QRadioButton* radioPrinter;
QRadioButton* radioImage;
QRadioButton* radioBarcode;
QRadioButton* radioImportSql;
QRadioButton* radioImportCSV;
QRadioButton* radioImportManual;
QRadioButton* radioImageFilenameArticle;
QRadioButton* radioImageFilenameBarcode;
QRadioButton* radioImageFilenameCustom;
KLineEdit* editImageFilename;
KURLRequester* imageDirPath;
KLineEdit* importSqlQuery;
KURLRequester* importCsvFile;
KComboBox* customerName;
KComboBox* customerId;
KComboBox* comboFormat;
EncodingCombo* comboEncoding;
KCompletion* compGroup;
KIntNumInput* serialInc;
KIntNumInput* numLabels;
QTable* m_varTable;
KListBox* m_varList;
KListView* listAddress;
KListView* listSelectedAddress;
KListView* sqlList;
KLineEdit* serialStart;
QCheckBox* checkKeepOpen;
KPushButton* buttonAddAddress;
KPushButton* buttonRemoveAddress;
KPushButton* buttonAddAllAddress;
KPushButton* buttonRemoveAllAddress;
KPushButton* buttonAdd;
KPushButton* buttonImport;
KPushButton* buttonEdit;
KPushButton* buttonRemove;
KPushButton* buttonRemoveAll;
KPushButton* buttonTableInsert;
KPushButton* buttonTableRemove;
KURLRequester* m_url;
};
#endif // BATCHWIZARD_H