diff options
Diffstat (limited to 'examples/showimg/imagetexteditor.cpp')
-rw-r--r-- | examples/showimg/imagetexteditor.cpp | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/examples/showimg/imagetexteditor.cpp b/examples/showimg/imagetexteditor.cpp new file mode 100644 index 000000000..464f85d9c --- /dev/null +++ b/examples/showimg/imagetexteditor.cpp @@ -0,0 +1,141 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** This file is part of an example program for TQt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#include "imagetexteditor.h" +#include <qimage.h> +#include <qlayout.h> +#include <qgrid.h> +#include <qvbox.h> +#include <qhbox.h> +#include <qcombobox.h> +#include <qmultilineedit.h> +#include <qlabel.h> +#include <qlineedit.h> +#include <qlistbox.h> +#include <qpushbutton.h> + + +ImageTextEditor::ImageTextEditor( TQImage& i, TQWidget *parent, const char *name, WFlags f ) : + TQDialog(parent,name,TRUE,f), + image(i) +{ + TQVBoxLayout* vbox = new TQVBoxLayout(this,8); + vbox->setAutoAdd(TRUE); + + TQGrid* controls = new TQGrid(3,TQGrid::Horizontal,this); + controls->setSpacing(8); + TQLabel* l; + l=new TQLabel("Language",controls); l->setAlignment(AlignCenter); + l=new TQLabel("Key",controls); l->setAlignment(AlignCenter); + (void)new TQLabel("",controls); // dummy + languages = new TQComboBox(controls); + keys = new TQComboBox(controls); + TQPushButton* remove = new TQPushButton("Remove",controls); + + newlang = new TQLineEdit(controls); + newkey = new TQLineEdit(controls); + TQPushButton* add = new TQPushButton("Add",controls); + + text = new TQMultiLineEdit(this); + + TQHBox* hbox = new TQHBox(this); + TQPushButton* cancel = new TQPushButton("Cancel",hbox); + TQPushButton* ok = new TQPushButton("OK",hbox); + + connect(add,SIGNAL(clicked()), + this,SLOT(addText())); + + connect(remove,SIGNAL(clicked()), + this,SLOT(removeText())); + + connect(ok,SIGNAL(clicked()), + this,SLOT(accept())); + + connect(cancel,SIGNAL(clicked()), + this,SLOT(reject())); + + connect(languages,SIGNAL(activated(int)), + this,SLOT(updateText())); + + connect(keys,SIGNAL(activated(int)), + this,SLOT(updateText())); + + imageChanged(); +} + +ImageTextEditor::~ImageTextEditor() +{ +} + +void ImageTextEditor::imageChanged() +{ + languages->clear(); + keys->clear(); + text->clear(); + languages->insertItem("<any>"); + + languages->insertStringList(image.textLanguages()); + keys->insertStringList(image.textKeys()); + + updateText(); +} + +void ImageTextEditor::accept() +{ + storeText(); + TQDialog::accept(); +} + +void ImageTextEditor::updateText() +{ + storeText(); + newlang->setText(languages->currentText()); + newkey->setText(keys->currentText()); + TQString t = image.text(currKey(),currLang()); + + text->setText(t); +} + +TQString ImageTextEditor::currKey() +{ + return newkey->text(); +} + +TQString ImageTextEditor::currLang() +{ + TQString l = newlang->text(); + if ( l=="<any>" ) + l = TQString::null; + return l; +} + +TQString ImageTextEditor::currText() +{ + TQString t = text->text(); + if ( t.isNull() ) t = ""; + return t; +} + + +void ImageTextEditor::removeText() +{ + image.setText(currKey(),currLang(),TQString::null); +} + +void ImageTextEditor::addText() +{ + storeText(); +} + +void ImageTextEditor::storeText() +{ + if ( currKey().length() > 0 ) { + image.setText(currKey(),currLang(),currText()); + } +} |