Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Tobias Hunger
qt-creator
Commits
d7d2ffaa
Commit
d7d2ffaa
authored
Jul 02, 2009
by
Kavindra Devi Palaraja
Browse files
Doc - More of Part 6
Reviewed-By: TrustMe
parent
c55eb917
Changes
7
Hide whitespace changes
Inline
Side-by-side
doc/examples/addressbook-sdk/part6/addressbook.cpp
View file @
d7d2ffaa
...
...
@@ -5,9 +5,261 @@ AddressBook::AddressBook(QWidget *parent)
:
QWidget
(
parent
),
ui
(
new
Ui
::
AddressBook
)
{
ui
->
setupUi
(
this
);
nameLine
=
new
QLineEdit
;
nameLine
=
ui
->
nameLine
;
nameLine
->
setReadOnly
(
true
);
addressText
=
new
QTextEdit
;
addressText
=
ui
->
addressText
;
addressText
->
setReadOnly
(
true
);
addButton
=
new
QPushButton
;
addButton
=
ui
->
addButton
;
submitButton
=
new
QPushButton
;
submitButton
=
ui
->
submitButton
;
submitButton
->
hide
();
cancelButton
=
new
QPushButton
;
cancelButton
=
ui
->
cancelButton
;
cancelButton
->
hide
();
nextButton
=
new
QPushButton
;
nextButton
=
ui
->
nextButton
;
nextButton
->
setEnabled
(
false
);
previousButton
=
new
QPushButton
;
previousButton
=
ui
->
previousButton
;
previousButton
->
setEnabled
(
false
);
editButton
=
new
QPushButton
;
editButton
=
ui
->
editButton
;
editButton
->
setEnabled
(
false
);
removeButton
=
new
QPushButton
;
removeButton
=
ui
->
removeButton
;
removeButton
->
setEnabled
(
false
);
findButton
=
new
QPushButton
;
findButton
=
ui
->
findButton
;
dialog
=
new
FindDialog
;
connect
(
addButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
addContact
()));
connect
(
submitButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
submitContact
()));
connect
(
cancelButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
cancel
()));
connect
(
nextButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
next
()));
connect
(
previousButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
previous
()));
connect
(
editButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
editContact
()));
connect
(
removeButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
removeContact
()));
connect
(
findButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
findContact
()));
setWindowTitle
(
tr
(
"Simple Address Book"
));
}
AddressBook
::~
AddressBook
()
{
delete
ui
;
}
void
AddressBook
::
addContact
()
{
oldName
=
nameLine
->
text
();
oldAddress
=
addressText
->
toPlainText
();
nameLine
->
clear
();
addressText
->
clear
();
updateInterface
(
AddingMode
);
}
void
AddressBook
::
submitContact
()
{
QString
name
=
nameLine
->
text
();
QString
address
=
addressText
->
toPlainText
();
if
(
name
==
""
||
address
==
""
)
{
QMessageBox
::
information
(
this
,
tr
(
"Empty Field"
),
tr
(
"Please enter a name and address."
));
}
if
(
currentMode
==
AddingMode
)
{
if
(
!
contacts
.
contains
(
name
))
{
contacts
.
insert
(
name
,
address
);
QMessageBox
::
information
(
this
,
tr
(
"Add Successful"
),
tr
(
"
\"
%1
\"
has been added to your address book."
).
arg
(
name
));
}
else
{
QMessageBox
::
information
(
this
,
tr
(
"Add Unsuccessful"
),
tr
(
"Sorry,
\"
%1
\"
is already in your address book."
).
arg
(
name
));
}
}
else
if
(
currentMode
==
EditingMode
)
{
if
(
oldName
!=
name
)
{
if
(
!
contacts
.
contains
(
name
))
{
QMessageBox
::
information
(
this
,
tr
(
"Edit Successful"
),
tr
(
"
\"
%1
\"
has been edited in your address book."
).
arg
(
oldName
));
contacts
.
remove
(
oldName
);
contacts
.
insert
(
name
,
address
);
}
else
{
QMessageBox
::
information
(
this
,
tr
(
"Edit Unsuccessful"
),
tr
(
"Sorry,
\"
%1
\"
is already in your address book."
).
arg
(
name
));
}
}
else
if
(
oldAddress
!=
address
)
{
QMessageBox
::
information
(
this
,
tr
(
"Edit Successful"
),
tr
(
"
\"
%1
\"
has been edited in your address book."
).
arg
(
name
));
contacts
[
name
]
=
address
;
}
}
updateInterface
(
NavigationMode
);
}
void
AddressBook
::
cancel
()
{
nameLine
->
setText
(
oldName
);
nameLine
->
setReadOnly
(
true
);
updateInterface
(
NavigationMode
);
}
void
AddressBook
::
next
()
{
QString
name
=
nameLine
->
text
();
QMap
<
QString
,
QString
>::
iterator
i
=
contacts
.
find
(
name
);
if
(
i
!=
contacts
.
end
())
i
++
;
if
(
i
==
contacts
.
end
())
i
=
contacts
.
begin
();
nameLine
->
setText
(
i
.
key
());
addressText
->
setText
(
i
.
value
());
}
void
AddressBook
::
previous
()
{
QString
name
=
nameLine
->
text
();
QMap
<
QString
,
QString
>::
iterator
i
=
contacts
.
find
(
name
);
if
(
i
==
contacts
.
end
())
{
nameLine
->
clear
();
addressText
->
clear
();
return
;
}
if
(
i
==
contacts
.
begin
())
i
=
contacts
.
end
();
i
--
;
nameLine
->
setText
(
i
.
key
());
addressText
->
setText
(
i
.
value
());
}
void
AddressBook
::
editContact
()
{
oldName
=
nameLine
->
text
();
oldAddress
=
addressText
->
toPlainText
();
updateInterface
(
EditingMode
);
}
void
AddressBook
::
removeContact
()
{
QString
name
=
nameLine
->
text
();
QString
address
=
addressText
->
toPlainText
();
if
(
contacts
.
contains
(
name
))
{
int
button
=
QMessageBox
::
question
(
this
,
tr
(
"Confirm Remove"
),
tr
(
"Are you sure you want to remove
\"
%1
\"
?"
).
arg
(
name
),
QMessageBox
::
Yes
|
QMessageBox
::
No
);
if
(
button
==
QMessageBox
::
Yes
)
{
previous
();
contacts
.
remove
(
name
);
QMessageBox
::
information
(
this
,
tr
(
"Remove Successful"
),
tr
(
"
\"
%1
\"
has been removed from your address book."
).
arg
(
name
));
}
}
updateInterface
(
NavigationMode
);
}
void
AddressBook
::
updateInterface
(
Mode
mode
)
{
currentMode
=
mode
;
switch
(
currentMode
)
{
case
AddingMode
:
case
EditingMode
:
nameLine
->
setReadOnly
(
false
);
nameLine
->
setFocus
(
Qt
::
OtherFocusReason
);
addressText
->
setReadOnly
(
false
);
addButton
->
setEnabled
(
false
);
editButton
->
setEnabled
(
false
);
removeButton
->
setEnabled
(
false
);
nextButton
->
setEnabled
(
false
);
previousButton
->
setEnabled
(
false
);
submitButton
->
show
();
cancelButton
->
show
();
break
;
case
NavigationMode
:
if
(
contacts
.
isEmpty
())
{
nameLine
->
clear
();
addressText
->
clear
();
}
nameLine
->
setReadOnly
(
true
);
addressText
->
setReadOnly
(
true
);
addButton
->
setEnabled
(
true
);
int
number
=
contacts
.
size
();
editButton
->
setEnabled
(
number
>=
1
);
removeButton
->
setEnabled
(
number
>=
1
);
findButton
->
setEnabled
(
number
>
2
);
nextButton
->
setEnabled
(
number
>
1
);
previousButton
->
setEnabled
(
number
>
1
);
submitButton
->
hide
();
cancelButton
->
hide
();
break
;
}
}
void
AddressBook
::
findContact
()
{
dialog
->
show
();
if
(
dialog
->
exec
()
==
QDialog
::
Accepted
)
{
QString
contactName
=
dialog
->
getFindText
();
if
(
contacts
.
contains
(
contactName
))
{
nameLine
->
setText
(
contactName
);
addressText
->
setText
(
contacts
.
value
(
contactName
));
}
else
{
QMessageBox
::
information
(
this
,
tr
(
"Contact Not Found"
),
tr
(
"Sorry,
\"
%1
\"
is not in your address book."
).
arg
(
contactName
));
return
;
}
}
updateInterface
(
NavigationMode
);
}
doc/examples/addressbook-sdk/part6/addressbook.h
View file @
d7d2ffaa
...
...
@@ -2,6 +2,11 @@
#define ADDRESSBOOK_H
#include
<QtGui/QWidget>
#include
<QtGui/QPushButton>
#include
<QtGui/QLineEdit>
#include
<QtGui/QTextEdit>
#include
<QtGui/QMessageBox>
#include
"finddialog.h"
namespace
Ui
{
...
...
@@ -14,10 +19,39 @@ class AddressBook : public QWidget
public:
AddressBook
(
QWidget
*
parent
=
0
);
enum
Mode
{
NavigationMode
,
AddingMode
,
EditingMode
};
~
AddressBook
();
public
slots
:
void
addContact
();
void
submitContact
();
void
cancel
();
void
editContact
();
void
removeContact
();
void
next
();
void
previous
();
void
findContact
();
private:
Ui
::
AddressBook
*
ui
;
void
updateInterface
(
Mode
mode
);
QPushButton
*
addButton
;
QPushButton
*
submitButton
;
QPushButton
*
cancelButton
;
QPushButton
*
editButton
;
QPushButton
*
removeButton
;
QPushButton
*
nextButton
;
QPushButton
*
previousButton
;
QPushButton
*
findButton
;
QLineEdit
*
nameLine
;
QTextEdit
*
addressText
;
QMap
<
QString
,
QString
>
contacts
;
QString
oldName
;
QString
oldAddress
;
Mode
currentMode
;
FindDialog
*
dialog
;
};
#endif // ADDRESSBOOK_H
doc/examples/addressbook-sdk/part6/addressbook.ui
View file @
d7d2ffaa
<?xml version="1.0" encoding="UTF-8"?>
<ui
version=
"4.0"
>
<class>
AddressBook
</class>
<widget class="QWidget" name="AddressBook"
>
<property name="geometry"
>
<widget
class=
"QWidget"
name=
"AddressBook"
>
<property
name=
"geometry"
>
<rect>
<x>
0
</x>
<y>
0
</y>
<width>
600
</width>
<height>
400
</height>
<width>
444
</width>
<height>
288
</height>
</rect>
</property>
<property name="windowTitle"
>
<property
name=
"windowTitle"
>
<string>
AddressBook
</string>
</property>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_2"
>
<item>
<layout
class=
"QGridLayout"
name=
"gridLayout"
>
<item
row=
"0"
column=
"0"
>
<widget
class=
"QLabel"
name=
"nameLabel"
>
<property
name=
"text"
>
<string>
Name:
</string>
</property>
</widget>
</item>
<item
row=
"0"
column=
"1"
>
<widget
class=
"QLineEdit"
name=
"nameLine"
/>
</item>
<item
row=
"1"
column=
"0"
>
<widget
class=
"QLabel"
name=
"addressLabel"
>
<property
name=
"text"
>
<string>
Address:
</string>
</property>
<property
name=
"alignment"
>
<set>
Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
</set>
</property>
</widget>
</item>
<item
row=
"1"
column=
"1"
>
<widget
class=
"QTextEdit"
name=
"addressText"
/>
</item>
<item
row=
"1"
column=
"2"
>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout"
>
<item>
<widget
class=
"QPushButton"
name=
"addButton"
>
<property
name=
"text"
>
<string>
Add
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QPushButton"
name=
"submitButton"
>
<property
name=
"text"
>
<string>
Submit
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QPushButton"
name=
"cancelButton"
>
<property
name=
"text"
>
<string>
Cancel
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QPushButton"
name=
"editButton"
>
<property
name=
"text"
>
<string>
Edit
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QPushButton"
name=
"removeButton"
>
<property
name=
"text"
>
<string>
Remove
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QPushButton"
name=
"findButton"
>
<property
name=
"text"
>
<string>
Find
</string>
</property>
</widget>
</item>
<item>
<spacer
name=
"verticalSpacer"
>
<property
name=
"orientation"
>
<enum>
Qt::Vertical
</enum>
</property>
<property
name=
"sizeHint"
stdset=
"0"
>
<size>
<width>
20
</width>
<height>
40
</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item
row=
"2"
column=
"1"
>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout"
>
<item>
<widget
class=
"QPushButton"
name=
"nextButton"
>
<property
name=
"text"
>
<string>
Previous
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QPushButton"
name=
"previousButton"
>
<property
name=
"text"
>
<string>
Next
</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</widget>
<layoutDefault spacing="6" margin="11" />
<pixmapfunction></pixmapfunction>
<layoutdefault
spacing=
"6"
margin=
"11"
/>
<resources/>
<connections/>
</ui>
doc/examples/addressbook-sdk/part6/finddialog.cpp
0 → 100644
View file @
d7d2ffaa
#include
"finddialog.h"
#include
"ui_finddialog.h"
#include
<QMessageBox>
FindDialog
::
FindDialog
(
QWidget
*
parent
)
:
QDialog
(
parent
),
m_ui
(
new
Ui
::
FindDialog
)
{
m_ui
->
setupUi
(
this
);
lineEdit
=
new
QLineEdit
;
lineEdit
=
m_ui
->
lineEdit
;
findButton
=
new
QPushButton
;
findButton
=
m_ui
->
findButton
;
findText
=
""
;
connect
(
findButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
findClicked
()));
setWindowTitle
(
tr
(
"Find a Contact"
));
}
FindDialog
::~
FindDialog
()
{
delete
m_ui
;
}
void
FindDialog
::
findClicked
()
{
QString
text
=
lineEdit
->
text
();
if
(
text
.
isEmpty
())
{
QMessageBox
::
information
(
this
,
tr
(
"Empty Field"
),
tr
(
"Please enter a name."
));
return
;
}
else
{
findText
=
text
;
lineEdit
->
clear
();
hide
();
}
}
QString
FindDialog
::
getFindText
()
{
return
findText
;
}
doc/examples/addressbook-sdk/part6/finddialog.h
0 → 100644
View file @
d7d2ffaa
#ifndef FINDDIALOG_H
#define FINDDIALOG_H
#include
<QtGui/QDialog>
#include
<QtGui/QLineEdit>
#include
<QtGui/QPushButton>
namespace
Ui
{
class
FindDialog
;
}
class
FindDialog
:
public
QDialog
{
Q_OBJECT
public:
FindDialog
(
QWidget
*
parent
=
0
);
~
FindDialog
();
QString
getFindText
();
public
slots
:
void
findClicked
();
private:
Ui
::
FindDialog
*
m_ui
;
QPushButton
*
findButton
;
QLineEdit
*
lineEdit
;
QString
findText
;
};
#endif // FINDDIALOG_H
doc/examples/addressbook-sdk/part6/finddialog.ui
0 → 100644
View file @
d7d2ffaa
<?xml version="1.0" encoding="UTF-8"?>
<ui
version=
"4.0"
>
<class>
FindDialog
</class>
<widget
class=
"QDialog"
name=
"FindDialog"
>
<property
name=
"geometry"
>
<rect>
<x>
0
</x>
<y>
0
</y>
<width>
475
</width>
<height>
71
</height>
</rect>
</property>
<property
name=
"windowTitle"
>
<string>
Dialog
</string>
</property>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout_2"
>
<item>
<layout
class=
"QHBoxLayout"
name=
"horizontalLayout"
>
<item>
<widget
class=
"QLabel"
name=
"label"
>
<property
name=
"text"
>
<string>
Enter the name of a contact:
</string>
</property>
</widget>
</item>
<item>
<widget
class=
"QLineEdit"
name=
"lineEdit"
/>
</item>
<item>
<widget
class=
"QPushButton"
name=
"findButton"
>
<property
name=
"text"
>
<string>
Find
</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
doc/examples/addressbook-sdk/part6/part6.pro
View file @
d7d2ffaa
#-------------------------------------------------
#
# -------------------------------------------------
#
Project
created
by
QtCreator
2009
-
07
-
01
T16
:
46
:
33
#
#-------------------------------------------------
#
-------------------------------------------------
TARGET
=
part6
TEMPLATE
=
app
SOURCES
+=
main
.
cpp
\
addressbook
.
cpp
HEADERS
+=
addressbook
.
h
FORMS
+=
addressbook
.
ui
SOURCES
+=
main
.
cpp
\
addressbook
.
cpp
\
finddialog
.
cpp
HEADERS
+=
addressbook
.
h
\
finddialog
.
h
FORMS
+=
addressbook
.
ui
\
finddialog
.
ui
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment