~kubuntu-members/perlkde/4.11

« back to all changes in this revision

Viewing changes to qtgui/examples/itemviews/simpletreemodel/TreeItem.pm

  • Committer: Arno Rehn
  • Date: 2011-01-06 17:49:41 UTC
  • Revision ID: git-v1:ada9e4b459cf6fabd0f3b9b164387469cb19d9bc
A patch by Ian Monroe and myself to modularize the repository.
See README.MODULARIZATION for details.

svn path=/trunk/KDE/kdebindings/perl/; revision=1212365

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
package TreeItem;
2
 
 
3
 
use strict;
4
 
use warnings;
5
 
use QtCore4;
6
 
use QtGui4;
7
 
use List::MoreUtils qw( first_index );
8
 
 
9
 
    #Qt4::List<TreeItem*> childItems;
10
 
    #Qt4::List<Qt4::Variant> itemData;
11
 
    #TreeItem *parentItem;
12
 
 
13
 
# [0]
14
 
sub new
15
 
{
16
 
    my ($class, $data, $parent) = @_;
17
 
    my $self = bless {}, $class;
18
 
    $self->{parentItem} = $parent;
19
 
    $self->{itemData} = $data;
20
 
    $self->{childItems} = [];
21
 
    return $self;
22
 
}
23
 
# [0]
24
 
 
25
 
# [2]
26
 
sub appendChild
27
 
{
28
 
    my ($self, $item) = @_;
29
 
    push @{$self->{childItems}}, $item;
30
 
}
31
 
# [2]
32
 
 
33
 
# [3]
34
 
sub child
35
 
{
36
 
    my ($self, $row) = @_;
37
 
    return $self->{childItems}->[$row];
38
 
}
39
 
# [3]
40
 
 
41
 
# [4]
42
 
sub childCount
43
 
{
44
 
    my ($self) = @_;
45
 
    return scalar @{$self->{childItems}};
46
 
}
47
 
# [4]
48
 
 
49
 
# [5]
50
 
sub columnCount
51
 
{
52
 
    my ($self) = @_;
53
 
    return scalar @{$self->{itemData}};
54
 
}
55
 
# [5]
56
 
 
57
 
# [6]
58
 
sub data
59
 
{
60
 
    my ($self, $column) = @_;
61
 
    return $self->{itemData}->[$column];
62
 
}
63
 
# [6]
64
 
 
65
 
# [7]
66
 
sub parent
67
 
{
68
 
    my ($self) = @_;
69
 
    return $self->{parentItem};
70
 
}
71
 
# [7]
72
 
 
73
 
# [8]
74
 
sub row
75
 
{
76
 
    my ($self) = @_;
77
 
    if ($self->{parentItem}) {
78
 
        return $self->{parentItem}->indexOf($self);
79
 
    }
80
 
 
81
 
    return 0;
82
 
}
83
 
# [8]
84
 
 
85
 
sub indexOf {
86
 
    my ($self, $child) = @_;
87
 
    return first_index{ $_ == $child } @{$self->{childItems}};
88
 
}
89
 
 
90
 
1;