aboutsummaryrefslogtreecommitdiffstats
path: root/doc/codesnippets/doc/src/snippets/code/doc_src_q3ptrlist.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'doc/codesnippets/doc/src/snippets/code/doc_src_q3ptrlist.qdoc')
-rw-r--r--doc/codesnippets/doc/src/snippets/code/doc_src_q3ptrlist.qdoc82
1 files changed, 82 insertions, 0 deletions
diff --git a/doc/codesnippets/doc/src/snippets/code/doc_src_q3ptrlist.qdoc b/doc/codesnippets/doc/src/snippets/code/doc_src_q3ptrlist.qdoc
new file mode 100644
index 000000000..f416784f7
--- /dev/null
+++ b/doc/codesnippets/doc/src/snippets/code/doc_src_q3ptrlist.qdoc
@@ -0,0 +1,82 @@
+//! [0]
+class Employee
+{
+public:
+ Employee() : sn( 0 ) { }
+ Employee( const QString& forename, const QString& surname, int salary )
+ : fn( forename ), sn( surname ), sal( salary )
+ { }
+
+ void setSalary( int salary ) { sal = salary; }
+
+ QString forename() const { return fn; }
+ QString surname() const { return sn; }
+ int salary() const { return sal; }
+
+private:
+ QString fn;
+ QString sn;
+ int sal;
+};
+
+Q3PtrList<Employee> list;
+list.setAutoDelete( TRUE ); // the list owns the objects
+
+list.append( new Employee("John", "Doe", 50000) );
+list.append( new Employee("Jane", "Williams", 80000) );
+list.append( new Employee("Tom", "Jones", 60000) );
+
+Employee *employee;
+for ( employee = list.first(); employee; employee = list.next() )
+ cout << employee->surname().latin1() << ", " <<
+ employee->forename().latin1() << " earns " <<
+ employee->salary() << endl;
+cout << endl;
+
+// very inefficient for big lists
+for ( uint i = 0; i < list.count(); ++i )
+ if ( list.at(i) )
+ cout << list.at( i )->surname().latin1() << endl;
+//! [0]
+
+
+//! [1]
+Doe, John earns 50000
+Williams, Jane earns 80000
+Jones, Tom earns 60000
+
+Doe
+Williams
+Jones
+//! [1]
+
+
+//! [2]
+if ( list.findRef( item ) != -1 )
+ list.remove();
+//! [2]
+
+
+//! [3]
+Q3PtrList<Employee> list;
+
+list.append( new Employee("John", "Doe", 50000) );
+list.append( new Employee("Jane", "Williams", 80000) );
+list.append( new Employee("Tom", "Jones", 60000) );
+
+Q3PtrListIterator<Employee> it( list );
+Employee *employee;
+while ( (employee = it.current()) != 0 ) {
+ ++it;
+ cout << employee->surname().latin1() << ", " <<
+ employee->forename().latin1() << " earns " <<
+ employee->salary() << endl;
+}
+//! [3]
+
+
+//! [4]
+Doe, John earns 50000
+Williams, Jane earns 80000
+Jones, Tom earns 60000
+//! [4]