diff --git a/glabels/CMakeLists.txt b/glabels/CMakeLists.txt index d03daa7..df14917 100644 --- a/glabels/CMakeLists.txt +++ b/glabels/CMakeLists.txt @@ -18,7 +18,6 @@ set (glabels_sources Cursors.cpp EditVariableDialog.cpp FieldButton.cpp - FieldCombo.cpp File.cpp Help.cpp Icons.cpp @@ -56,7 +55,6 @@ set (glabels_qobject_headers ColorPaletteButtonItem.h EditVariableDialog.h FieldButton.h - FieldCombo.h File.h LabelEditor.h MainWindow.h diff --git a/glabels/FieldButton.cpp b/glabels/FieldButton.cpp index 212a766..483e770 100644 --- a/glabels/FieldButton.cpp +++ b/glabels/FieldButton.cpp @@ -1,6 +1,6 @@ /* FieldButton.cpp * - * Copyright (C) 2014-2019 Jim Evins + * Copyright (C) 2019 Jim Evins * * This file is part of gLabels-qt. * diff --git a/glabels/FieldCombo.cpp b/glabels/FieldCombo.cpp deleted file mode 100644 index c2da4a7..0000000 --- a/glabels/FieldCombo.cpp +++ /dev/null @@ -1,149 +0,0 @@ -/* FieldCombo.cpp - * - * Copyright (C) 2014-2019 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 "FieldCombo.h" - -#include -#include - - -namespace glabels -{ - - /// - /// Constructor - /// - FieldCombo::FieldCombo( QWidget* parent ) - : QComboBox(parent) - { - connect( this, SIGNAL(currentIndexChanged(int)), - this, SLOT(onIndexChanged(int)) ); - } - - - /// - /// Is current selection the alternative default selection? - /// - bool FieldCombo::isCurrentSelectionSpecial() const - { - return currentIndex() == 0; - } - - - /// - /// Return current selection - /// - QString FieldCombo::currentSelection() const - { - return mFieldNames[ currentIndex() ]; - } - - - /// - /// Set current selection to special - /// - void FieldCombo::setCurrentSelectionToSpecial() - { - setCurrentIndex( 0 ); - } - - - /// - /// Set current selection - /// - void FieldCombo::setCurrentSelection( const QString& key ) - { - setCurrentText( QString( "${%1}" ).arg( key ) ); - } - - - /// - /// Set alternative default selection - /// - void FieldCombo::setSpecialSelectionText( const QString& name ) - { - mName = name; - if ( count() == 0 ) - { - addItem( mName ); - } - else - { - setItemText( 0, mName ); - } - } - - - /// - /// Set field selections - /// - void FieldCombo::setFieldSelections( const merge::Merge* merge, - const model::Variables* variables ) - { - // Clear old keys - clear(); - mFieldNames.clear(); - - // Add default alt selection - addItem( mName ); - mFieldNames.append( mName ); - - // Add merge fields, if any - for ( auto& key : merge->keys() ) - { - addItem( QString( "${%1}" ).arg( key ) ); - mFieldNames.append( key ); - } - - // Add variables, if any - for ( auto& key : variables->keys() ) - { - addItem( QString( "${%1}" ).arg( key ) ); - mFieldNames.append( key ); - } - } - - - /// - /// Clear field selections - /// - void FieldCombo::clearFieldSelections() - { - clear(); - mFieldNames.clear(); - - addItem( mName ); - mFieldNames.append( mName ); - } - - - /// - /// onMenuKeySelected slot - /// - void FieldCombo::onIndexChanged( int index ) - { - if ( index >= 0 ) - { - emit selectionChanged(); - } - } - - -} // namespace glabels diff --git a/glabels/FieldCombo.h b/glabels/FieldCombo.h deleted file mode 100644 index a748628..0000000 --- a/glabels/FieldCombo.h +++ /dev/null @@ -1,94 +0,0 @@ -/* FieldCombo.h - * - * Copyright (C) 2014-2019 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 FieldCombo_h -#define FieldCombo_h - - -#include "model/Variables.h" -#include "merge/Merge.h" - -#include -#include -#include - - -namespace glabels -{ - - /// - /// Field Combo - /// - class FieldCombo : public QComboBox - { - Q_OBJECT - - ///////////////////////////////// - // Life Cycle - ///////////////////////////////// - public: - FieldCombo( QWidget* parent = nullptr ); - - - ///////////////////////////////// - // Signals - ///////////////////////////////// - signals: - void selectionChanged(); - - - ///////////////////////////////// - // Public Methods - ///////////////////////////////// - public: - bool isCurrentSelectionSpecial() const; - QString currentSelection() const; - - void setCurrentSelectionToSpecial(); - void setCurrentSelection( const QString& key ); - - void setSpecialSelectionText( const QString& name = "" ); - - void setFieldSelections( const merge::Merge* merge, - const model::Variables* variables ); - - void clearFieldSelections(); - - - ///////////////////////////////// - // Slots - ///////////////////////////////// - private slots: - void onIndexChanged( int index ); - - - ///////////////////////////////// - // Private Data - ///////////////////////////////// - private: - QString mName; - QVector mFieldNames; - - }; - -} - - -#endif // FieldCombo_h diff --git a/glabels/ObjectEditor.cpp b/glabels/ObjectEditor.cpp index 8736ddd..dc480b5 100644 --- a/glabels/ObjectEditor.cpp +++ b/glabels/ObjectEditor.cpp @@ -69,7 +69,7 @@ namespace glabels textInsertFieldButton->setText( tr("Insert field") ); barcodeInsertFieldButton->setText( tr("Insert field") ); - imageFieldCombo->setSpecialSelectionText( tr("Selected file...") ); + imageFieldButton->setText( tr("Use field") ); setEnabled( false ); hidePages(); @@ -123,14 +123,12 @@ namespace glabels model::TextNode filenameNode = mObject->filenameNode(); - imageFileSelectionBox->setVisible( !filenameNode.isField() ); if ( filenameNode.isField() ) { - imageFieldCombo->setCurrentSelection( filenameNode.data() ); + imageFilenameLineEdit->setText( QString("${%1}").arg(filenameNode.data()) ); } else { - imageFieldCombo->setCurrentSelectionToSpecial(); imageFilenameLineEdit->setText( filenameNode.data() ); } @@ -510,7 +508,7 @@ namespace glabels fillColorButton->setKeys( keys ); textInsertFieldButton->setKeys( mModel->merge(), mModel->variables() ); barcodeInsertFieldButton->setKeys( mModel->merge(), mModel->variables() ); - imageFieldCombo->setFieldSelections( mModel->merge(), mModel->variables() ); + imageFieldButton->setKeys( mModel->merge(), mModel->variables() ); shadowColorButton->setKeys( keys ); } } @@ -620,21 +618,12 @@ namespace glabels } - void ObjectEditor::onImageComboChanged() + void ObjectEditor::onImageKeySelected( QString key ) { - imageFileSelectionBox->setVisible( imageFieldCombo->isCurrentSelectionSpecial() ); - if ( mObject ) { mUndoRedoModel->checkpoint( tr("Set image") ); - if ( imageFieldCombo->isCurrentSelectionSpecial() ) - { - mObject->setFilenameNode( model::TextNode( false, imageFilenameLineEdit->text() ) ); - } - else - { - mObject->setFilenameNode( model::TextNode( true, imageFieldCombo->currentSelection() ) ); - } + mObject->setFilenameNode( model::TextNode( true, key ) ); } } diff --git a/glabels/ObjectEditor.h b/glabels/ObjectEditor.h index 53cdf5b..57b380f 100644 --- a/glabels/ObjectEditor.h +++ b/glabels/ObjectEditor.h @@ -87,7 +87,7 @@ namespace glabels void onLineControlsChanged(); void onFillControlsChanged(); void onImageFileButtonClicked(); - void onImageComboChanged(); + void onImageKeySelected( QString key ); void onPositionControlsChanged(); void onRectSizeControlsChanged(); void onLineSizeControlsChanged(); diff --git a/glabels/ui/ObjectEditor.ui b/glabels/ui/ObjectEditor.ui index 1a9d51f..e46be75 100644 --- a/glabels/ui/ObjectEditor.ui +++ b/glabels/ui/ObjectEditor.ui @@ -70,7 +70,7 @@ - 1 + 2 @@ -766,83 +766,6 @@ Image - - - - File - - - - - - - 0 - 0 - - - - - Selected File... - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - - 231 - 0 - - - - true - - - None - - - - - - - - 0 - 0 - - - - Browse... - - - - - - - - - @@ -856,6 +779,57 @@ + + + + File + + + + + + + 0 + 0 + + + + + 231 + 0 + + + + true + + + None + + + + + + + + 0 + 0 + + + + Browse... + + + + + + + Use field + + + + + + @@ -1542,14 +1516,6 @@ selectionChanged() - - glabels::FieldCombo - QComboBox -
FieldCombo.h
- - selectionChanged() - -
glabels::FieldButton QPushButton @@ -2019,7 +1985,7 @@ 367 - 168 + 135 394 @@ -2155,22 +2121,6 @@ - - imageFieldCombo - selectionChanged() - ObjectEditor - onImageComboChanged() - - - 283 - 118 - - - 398 - 18 - - - textInsertFieldButton keySelected(QString) @@ -2203,6 +2153,22 @@ + + imageFieldButton + keySelected(QString) + ObjectEditor + onImageKeySelected(QString) + + + 317 + 160 + + + 331 + -12 + + + onChanged() diff --git a/translations/glabels_C.ts b/translations/glabels_C.ts index 933c810..9a9f61b 100644 --- a/translations/glabels_C.ts +++ b/translations/glabels_C.ts @@ -1908,7 +1908,7 @@ - Selected file... + Use field