first re-commit.
This commit is contained in:
120
libMiniCash/mcmainwindowbase.h
Normal file
120
libMiniCash/mcmainwindowbase.h
Normal file
@@ -0,0 +1,120 @@
|
||||
/***************************************************************************
|
||||
|
||||
libMiniCash
|
||||
Copyright © 2013-2022 christoph holzheuer
|
||||
c.holzheuer@sourceworx.org
|
||||
|
||||
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 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef MCMAINWINDOWBASE_H
|
||||
#define MCMAINWINDOWBASE_H
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QSettings>
|
||||
|
||||
#include <libMiniCash.h>
|
||||
#include <mcsalesmodel.h>
|
||||
#include <mcinputview.h>
|
||||
|
||||
|
||||
/**
|
||||
* @brief Dient als abstrakte MainWindow-Basisklasse für Projekte,
|
||||
* die auf libMiniCash aufbauen.
|
||||
*
|
||||
* Die MCMainWindowBase-Klasse ist die Hauptklasse der libMiniCash-Library und dient als
|
||||
* abstrakte Basisklasse der jeweiligen MainWindows in den Projekten, die auf libMiniCash aufbauen.
|
||||
*
|
||||
* Die Benutzeroberlfläche wird hier _nicht_ implementiert, sondern nur die Infrastruktur zum
|
||||
*
|
||||
* - Eingeben
|
||||
* - Bearbeiten
|
||||
* - sowie Speichern
|
||||
*
|
||||
* von Verkaufsdaten. Funktionen, die direkt mit der Nutzeroberfläche interagieren, werden
|
||||
* daher in den Subklassen implemntiert.
|
||||
|
||||
* Die dazu verwendeten Klassen werden auch in dieser Bibliothek definiert:
|
||||
*
|
||||
* - @see mcsalesitem
|
||||
* - @see mcsalesitemmap
|
||||
* - @see mcsalesmodel
|
||||
* - @see mcsalessummary
|
||||
*
|
||||
* Weiterhing enthält MCMainWindowBase die Implementierung der SLOTS für Servicefunktionalität der
|
||||
* Benutzeroberfläche.
|
||||
*
|
||||
*/
|
||||
|
||||
class LIBMINICASH_EXPORT MCMainWindowBase : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
explicit MCMainWindowBase( QWidget* parent = nullptr );
|
||||
virtual ~MCMainWindowBase();
|
||||
|
||||
QString transCount();
|
||||
|
||||
signals:
|
||||
|
||||
void fileError();
|
||||
void transactionCreated( const QString& transaction ); /// Einkaufstransaktion beenden, senden
|
||||
|
||||
protected:
|
||||
|
||||
QString fetchSetting( const QString& key ); /// Hilfsfunktion: Dateipfad erzeugen
|
||||
bool showFileError( const QString& filename, const QString& errormsg ); /// Hilfsfunktion: Fehlermeldung anzeigen
|
||||
|
||||
void setupDefaults(); /// Init-Funktion, wird beim Programmstart aufgerufen
|
||||
bool setupDataFile(); /// Arbeitsdateien erzeugen bzw. öffnen
|
||||
|
||||
QString saveTransactionToString();
|
||||
bool saveTransactionToFile( const QString& filename, const QString& transaction ); /// Einkaufstransaktion beenden, auf platte oder ins netz schreiben schreiben
|
||||
|
||||
protected slots:
|
||||
|
||||
virtual void onSetup() = 0;
|
||||
virtual void onEditTransactions() = 0; /// Kassendatei durchsuchen und editieren
|
||||
virtual bool onSaveTransaction(); /// Kundentransaktion beenden, auf platte schreiben
|
||||
virtual void onCopyTransactions(); /// Alle Transaktionen zur Auswertung von Disk auf Stick kopieren
|
||||
virtual void onStartBilling() = 0; /// Kassieren beenden und Abrechnungsmodus starten
|
||||
virtual void onExit(); /// Programm beenden
|
||||
virtual void onExitConfirmed(); /// Programm beenden, mit Bestätigung
|
||||
virtual void onHelpAbout() = 0; /// rumbalotte
|
||||
virtual void onHelpManual(); /// Hilfe anzeigen
|
||||
|
||||
protected:
|
||||
|
||||
int _transCount = -10; /// Anzahl der Transaktionen (== Verkäufe) ingesamt bisher
|
||||
int _newTransCount = 0; /// Anzahl der Transaktionen (== Verkäufe) seit dem Programmstart
|
||||
|
||||
MCSalesModel _salesModel; /// StandardItemModel, speichert Verkaufsdaten und zeigt sie an.
|
||||
QString _dataFileName; /// Name der Transaktionsdatei _ohne_ Laufwerk: 02-15-2013.klm
|
||||
QString _dataFilePath; /// Pfad der Transaktionsdatei _ohne_ Laufwerk: 02-15-2013.klm
|
||||
MCInputView* _inputViewProxy = nullptr; /// Platzhalter für die InputView, die in den subclasses implementiert wird.
|
||||
QSettings _mainSettings; /// Persistente Einstellungen
|
||||
|
||||
};
|
||||
|
||||
#endif // MCMAINWINDOWBASE_H
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user