home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
qt3_emx.zip
/
examples
/
showimg
/
imagetexteditor.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
2001-10-11
|
3KB
|
143 lines
/****************************************************************************
** $Id: qt/imagetexteditor.cpp 3.0.0 edited Jun 22 13:24 $
**
** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
**
** This file is part of an example program for Qt. 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( QImage& i, QWidget *parent, const char *name, WFlags f ) :
QDialog(parent,name,TRUE,f),
image(i)
{
QVBoxLayout* vbox = new QVBoxLayout(this,8);
vbox->setAutoAdd(TRUE);
QGrid* controls = new QGrid(3,QGrid::Horizontal,this);
controls->setSpacing(8);
QLabel* l;
l=new QLabel("Language",controls); l->setAlignment(AlignCenter);
l=new QLabel("Key",controls); l->setAlignment(AlignCenter);
(void)new QLabel("",controls); // dummy
languages = new QComboBox(controls);
keys = new QComboBox(controls);
QPushButton* remove = new QPushButton("Remove",controls);
newlang = new QLineEdit(controls);
newkey = new QLineEdit(controls);
QPushButton* add = new QPushButton("Add",controls);
text = new QMultiLineEdit(this);
QHBox* hbox = new QHBox(this);
QPushButton* cancel = new QPushButton("Cancel",hbox);
QPushButton* ok = new QPushButton("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();
QDialog::accept();
}
void ImageTextEditor::updateText()
{
storeText();
newlang->setText(languages->currentText());
newkey->setText(keys->currentText());
QString t = image.text(currKey(),currLang());
text->setText(t);
}
QString ImageTextEditor::currKey()
{
return newkey->text();
}
QString ImageTextEditor::currLang()
{
QString l = newlang->text();
if ( l=="<any>" )
l = QString::null;
return l;
}
QString ImageTextEditor::currText()
{
QString t = text->text();
if ( t.isNull() ) t = "";
return t;
}
void ImageTextEditor::removeText()
{
image.setText(currKey(),currLang(),QString::null);
}
void ImageTextEditor::addText()
{
storeText();
}
void ImageTextEditor::storeText()
{
if ( currKey().length() > 0 ) {
image.setText(currKey(),currLang(),currText());
}
}