source: trunk/examples/showimg/imagetexteditor.cpp@ 7

Last change on this file since 7 was 2, checked in by dmik, 20 years ago

Imported xplatform parts of the official release 3.3.1 from Trolltech

  • Property svn:keywords set to Id
File size: 3.3 KB
Line 
1/****************************************************************************
2** $Id: imagetexteditor.cpp 2 2005-11-16 15:49:26Z dmik $
3**
4** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
5**
6** This file is part of an example program for Qt. This example
7** program may be used, distributed and modified without limitation.
8**
9*****************************************************************************/
10
11#include "imagetexteditor.h"
12#include <qimage.h>
13#include <qlayout.h>
14#include <qgrid.h>
15#include <qvbox.h>
16#include <qhbox.h>
17#include <qcombobox.h>
18#include <qmultilineedit.h>
19#include <qlabel.h>
20#include <qlineedit.h>
21#include <qlistbox.h>
22#include <qpushbutton.h>
23
24
25ImageTextEditor::ImageTextEditor( QImage& i, QWidget *parent, const char *name, WFlags f ) :
26 QDialog(parent,name,TRUE,f),
27 image(i)
28{
29 QVBoxLayout* vbox = new QVBoxLayout(this,8);
30 vbox->setAutoAdd(TRUE);
31
32 QGrid* controls = new QGrid(3,QGrid::Horizontal,this);
33 controls->setSpacing(8);
34 QLabel* l;
35 l=new QLabel("Language",controls); l->setAlignment(AlignCenter);
36 l=new QLabel("Key",controls); l->setAlignment(AlignCenter);
37 (void)new QLabel("",controls); // dummy
38 languages = new QComboBox(controls);
39 keys = new QComboBox(controls);
40 QPushButton* remove = new QPushButton("Remove",controls);
41
42 newlang = new QLineEdit(controls);
43 newkey = new QLineEdit(controls);
44 QPushButton* add = new QPushButton("Add",controls);
45
46 text = new QMultiLineEdit(this);
47
48 QHBox* hbox = new QHBox(this);
49 QPushButton* cancel = new QPushButton("Cancel",hbox);
50 QPushButton* ok = new QPushButton("OK",hbox);
51
52 connect(add,SIGNAL(clicked()),
53 this,SLOT(addText()));
54
55 connect(remove,SIGNAL(clicked()),
56 this,SLOT(removeText()));
57
58 connect(ok,SIGNAL(clicked()),
59 this,SLOT(accept()));
60
61 connect(cancel,SIGNAL(clicked()),
62 this,SLOT(reject()));
63
64 connect(languages,SIGNAL(activated(int)),
65 this,SLOT(updateText()));
66
67 connect(keys,SIGNAL(activated(int)),
68 this,SLOT(updateText()));
69
70 imageChanged();
71}
72
73ImageTextEditor::~ImageTextEditor()
74{
75}
76
77void ImageTextEditor::imageChanged()
78{
79 languages->clear();
80 keys->clear();
81 text->clear();
82 languages->insertItem("<any>");
83
84 languages->insertStringList(image.textLanguages());
85 keys->insertStringList(image.textKeys());
86
87 updateText();
88}
89
90void ImageTextEditor::accept()
91{
92 storeText();
93 QDialog::accept();
94}
95
96void ImageTextEditor::updateText()
97{
98 storeText();
99 newlang->setText(languages->currentText());
100 newkey->setText(keys->currentText());
101 QString t = image.text(currKey(),currLang());
102
103 text->setText(t);
104}
105
106QString ImageTextEditor::currKey()
107{
108 return newkey->text();
109}
110
111QString ImageTextEditor::currLang()
112{
113 QString l = newlang->text();
114 if ( l=="<any>" )
115 l = QString::null;
116 return l;
117}
118
119QString ImageTextEditor::currText()
120{
121 QString t = text->text();
122 if ( t.isNull() ) t = "";
123 return t;
124}
125
126
127void ImageTextEditor::removeText()
128{
129 image.setText(currKey(),currLang(),QString::null);
130}
131
132void ImageTextEditor::addText()
133{
134 storeText();
135}
136
137void ImageTextEditor::storeText()
138{
139 if ( currKey().length() > 0 ) {
140 image.setText(currKey(),currLang(),currText());
141 }
142}
Note: See TracBrowser for help on using the repository browser.