/*************************************************************************** dsmainwindow.cpp - description ------------------- begin : Fri Jan 17 2003 copyright : (C) 2003 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 "dsmainwindow.h" #include "sqltables.h" #include "confwizard.h" #include "printersettings.h" #include "kbarcodesettings.h" #include "barkode.h" // TQt includes #include #include #include // KDE includes #include #include #include #include #include #include #include #include #include #include bool DSMainWindow::autoconnect = true; bool DSMainWindow::startwizard = true; DSMainWindow::DSMainWindow(TQWidget *parent, const char *name, WFlags f) : TDEMainWindow(parent,name,f) { connectAct = 0; first = false; loadConfig(); setAutoSaveSettings( TQString("Window") + name, true ); connect( kapp, TQ_SIGNAL( aboutToQuit() ), this, TQ_SLOT( saveConfig() ) ); if( first && startwizard ) { wizard(); startwizard = false; } } DSMainWindow::~DSMainWindow() { } void DSMainWindow::setupActions() { TDEAction* quitAct = KStdAction::quit(kapp, TQ_SLOT(quit()), actionCollection()); TDEAction* closeAct = KStdAction::close( this, TQ_SLOT( close() ), actionCollection(), "close" ); TDEAction* configureAct = KStdAction::preferences( KBarcodeSettings::getInstance(), TQ_SLOT(configure()), actionCollection() ); TDEAction* wizardAct = new TDEAction( i18n("&Start Configuration Wizard..."), BarIcon("wizard"), 0, this, TQ_SLOT(wizard()), actionCollection(), "wizard" ); connectAct = new TDEAction(i18n("&Connect to Database"), BarIcon("connect_no"), 0, this, TQ_SLOT(connectMySQL()), actionCollection(),"connect" ); TDEAction* newTablesAct = new TDEAction( i18n("&Create Tables"), "", 0, this, TQ_SLOT(newTables()), actionCollection(), "tables" ); importLabelDefAct = new TDEAction( i18n("&Import Label Definitions"), "", 0, SqlTables::getInstance(), TQ_SLOT(importLabelDef()), actionCollection(), "import" ); importExampleAct = new TDEAction( i18n("&Import Example Data"), "", 0, SqlTables::getInstance(), TQ_SLOT(importExampleData()), actionCollection(), "import" ); TDEPopupMenu* file = new TDEPopupMenu( this ); TDEPopupMenu* settings = new TDEPopupMenu( this ); TDEPopupMenu* hlpMenu = helpMenu(); int helpid = hlpMenu->idAt( 0 ); hlpMenu->removeItem( helpid ); hlpMenu->insertItem( SmallIconSet("contents"), i18n("&Help"), this, TQ_SLOT(appHelpActivated()), Key_F1, -1, 0 ); hlpMenu->insertItem( SmallIconSet("barcode"), i18n("&Barcode Help..."), this, TQ_SLOT( startInfo() ), 0, -1, 1 ); hlpMenu->insertSeparator(3); hlpMenu->insertItem( i18n("&Donate..."), this, TQ_SLOT( donations() ), 0, -1, 4 ); hlpMenu->insertSeparator(5); hlpMenu->insertItem( SmallIconSet("computer"), i18n("&System Check..."), this, TQ_SLOT(showCheck() ), 0, -1, 6 ); menuBar()->insertItem( i18n("&File"), file ); menuBar()->insertItem( i18n("&Settings"), settings ); menuBar()->insertItem( i18n("&Help"), hlpMenu ); closeAct->plug( file ); quitAct->plug( file ); configureAct->plug( settings ); wizardAct->plug( settings ); connectAct->plug( settings ); (new TDEActionSeparator( this ))->plug( settings ); newTablesAct->plug( settings ); importLabelDefAct->plug( settings ); importExampleAct->plug( settings ); SqlTables* tables = SqlTables::getInstance(); if( tables->getData().autoconnect && autoconnect && !first ) { tables->connectMySQL(); autoconnect = false; } connectAct->setEnabled( !SqlTables::isConnected() ); importLabelDefAct->setEnabled( !connectAct->isEnabled() ); importExampleAct->setEnabled( !connectAct->isEnabled() ); } void DSMainWindow::loadConfig() { TDEConfig* config = kapp->config(); config->setGroup("Wizard"); first = config->readBoolEntry("firststart2", true ); SqlTables* tables = SqlTables::getInstance(); if( tables->getData().autoconnect && !first && autoconnect && connectAct ) { connectAct->setEnabled( !tables->connectMySQL() ); importLabelDefAct->setEnabled( !connectAct->isEnabled() ); importExampleAct->setEnabled( !connectAct->isEnabled() ); autoconnect = false; } KBarcodeSettings::getInstance()->loadConfig(); } void DSMainWindow::saveConfig() { TDEConfig* config = kapp->config(); config->setGroup("Wizard"); config->writeEntry("firststart2", false ); PrinterSettings::getInstance()->saveConfig(); SqlTables::getInstance()->saveConfig(); KBarcodeSettings::getInstance()->saveConfig(); config->sync(); } void DSMainWindow::wizard() { ConfWizard* wiz = new ConfWizard( 0, "wiz", true ); if( wiz->exec() == TQDialog::Accepted && wiz->checkDatabase->isChecked() ) SqlTables::getInstance()->connectMySQL(); delete wiz; } void DSMainWindow::connectMySQL() { connectAct->setEnabled( !SqlTables::getInstance()->connectMySQL() ); importLabelDefAct->setEnabled( !connectAct->isEnabled() ); importExampleAct->setEnabled( !connectAct->isEnabled() ); if( !connectAct->isEnabled() ) emit connectedSQL(); } void DSMainWindow::appHelpActivated() { KMessageBox::information( this, i18n( "The KBarcode documentation is avaible as PDF for download here.

") + "" + i18n("Download Now") + "
", TQString(), TQString(), KMessageBox::AllowLink ); } void DSMainWindow::showCheck() { TQTextBrowser* b = new TQTextBrowser( 0, "b" ); b->setText( DSMainWindow::systemCheck() ); b->resize( 320, 240 ); b->show(); } void DSMainWindow::startInfo() { TQString info = locate("appdata", "barcodes.html"); if( !info.isEmpty() ) kapp->invokeBrowser( info ); } bool DSMainWindow::newTables() { return SqlTables::getInstance()->newTables(); } void DSMainWindow::donations() { TQString url = "https://trinitydesktop.org/donate.php"; KMessageBox::information( this, i18n( "It is possible to support the further development of KBarcode through donations.

" ) + "" + i18n("Donate Now") + "
", TQString(), TQString(), KMessageBox::AllowLink ); } TQString DSMainWindow::systemCheck() { bool gnubarcode = !Barkode::haveGNUBarcode(); bool pdf = !Barkode::havePDFBarcode(); bool tbarcode = !Barkode::haveTBarcode(); bool tbarcode2 = !Barkode::haveTBarcode2(); bool pure = !Barkode::havePurePostscriptBarcode(); TQString text; text.append( i18n("

Barcode Support

") ); text.append( "

GNU Barcode: "); text.append( gnubarcode ? i18n("No
") : i18n("Found
") ); text.append( "PDF417 Encode: "); text.append( pdf ? i18n("No
") : i18n("Found
") ); text.append( "TBarcode: "); text.append( tbarcode ? i18n("No
") : i18n("Found
") ); text.append( "TBarcode2: "); text.append( tbarcode2 ? i18n("No
") : i18n("Found
") ); text.append( "Pure Postscript Barcode Writer: "); text.append( pure ? i18n("No
") : i18n("Found
") ); if( gnubarcode && tbarcode && pdf ) text.append( i18n("

To get barcode support you have to install GNU Barcode, TBarcode or PDF417 Enc.

") ); text.append( i18n("

Database Support

") ); TQStringList list = TQSqlDatabase::drivers(); if( list.count() ) { text.append( "
    " ); TQStringList::Iterator it = list.begin(); while( it != list.end() ) { text.append( i18n("
  • Driver found: ") + *it + "
  • " ); ++it; } text.append( "
" ); } else text.append( i18n("

No database drivers found. SQL database support is disabled.

") ); return text; } #include "dsmainwindow.moc"