diff --git a/app/BarcodeMenuButton.cpp b/app/BarcodeMenuButton.cpp new file mode 100644 index 0000000..09d5991 --- /dev/null +++ b/app/BarcodeMenuButton.cpp @@ -0,0 +1,68 @@ +/* BarcodeMenuButton.cpp + * + * Copyright (C) 2014 Jim Evins + * + * This file is part of gLabels-qt. + * + * gLabels-qt 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. + * + * gLabels-qt 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with gLabels-qt. If not, see . + */ + +#include "BarcodeMenuButton.h" + +#include "BarcodeBackends.h" +#include "BarcodeMenuItem.h" + + +namespace glabels +{ + + /// + /// Constructor + /// + BarcodeMenuButton::BarcodeMenuButton( QWidget* parent ) + : QPushButton(parent) + { + mMenu = new BarcodeMenu(); + setMenu( mMenu ); + + mBcStyle = BarcodeBackends::lookupStyleFromId( "" ); // Default style + setText( mBcStyle->name() ); + + connect( mMenu, SIGNAL(styleChanged()), this, SLOT(onMenuStyleChanged()) ); + } + + + /// + /// bcStyle getter + /// + const BarcodeStyle* BarcodeMenuButton::bcStyle() const + { + return mBcStyle; + } + + + /// + /// onMenuStyleChanged slot + /// + void BarcodeMenuButton::onMenuStyleChanged() + { + mBcStyle = mMenu->bcStyle(); + setText( mBcStyle->name() ); + + emit styleChanged(); + } + + +} + diff --git a/app/BarcodeMenuButton.h b/app/BarcodeMenuButton.h new file mode 100644 index 0000000..677e6d7 --- /dev/null +++ b/app/BarcodeMenuButton.h @@ -0,0 +1,79 @@ +/* BarcodeMenuButton.h + * + * Copyright (C) 2014 Jim Evins + * + * This file is part of gLabels-qt. + * + * gLabels-qt 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. + * + * gLabels-qt 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with gLabels-qt. If not, see . + */ + +#ifndef glabels_BarcodeMenuButton_h +#define glabels_BarcodeMenuButton_h + +#include +#include "BarcodeMenu.h" +#include "BarcodeStyle.h" + + +namespace glabels +{ + + /// + /// Barcode Menu Item + /// + class BarcodeMenuButton : public QPushButton + { + Q_OBJECT + + ///////////////////////////////// + // Life Cycle + ///////////////////////////////// + public: + BarcodeMenuButton( QWidget* parent = 0 ); + + + ///////////////////////////////// + // Signals + ///////////////////////////////// + signals: + void styleChanged(); + + + ///////////////////////////////// + // Properties + ///////////////////////////////// + public: + const BarcodeStyle* bcStyle() const; + + + ///////////////////////////////// + // Slots + ///////////////////////////////// + private slots: + void onMenuStyleChanged(); + + + ///////////////////////////////// + // Private Data + ///////////////////////////////// + private: + BarcodeMenu* mMenu; + const BarcodeStyle* mBcStyle; + + }; + + +} + +#endif // glabels_BarcodeMenuButton_h diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index eb06709..ac2b7ee 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -6,6 +6,7 @@ set (glabels_sources glabels_main.cpp BarcodeBackends.cpp BarcodeMenu.cpp + BarcodeMenuButton.cpp BarcodeMenuItem.cpp BarcodeStyle.cpp ColorNode.cpp @@ -28,6 +29,7 @@ set (glabels_sources set (glabels_qobject_headers BarcodeMenu.h + BarcodeMenuButton.h BarcodeMenuItem.h LabelModel.h LabelModelObject.h