summaryrefslogtreecommitdiffstats
path: root/examples/showimg/imagetexteditor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/showimg/imagetexteditor.cpp')
-rw-r--r--examples/showimg/imagetexteditor.cpp141
1 files changed, 141 insertions, 0 deletions
diff --git a/examples/showimg/imagetexteditor.cpp b/examples/showimg/imagetexteditor.cpp
new file mode 100644
index 0000000..b3f34d9
--- /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 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());
+ }
+}