File: convert-qlabel.pl

package info (click to toggle)
kde-dev-scripts 4%3A18.08.0-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 3,496 kB
  • sloc: perl: 15,466; lisp: 5,627; sh: 4,157; python: 3,892; ruby: 2,158; makefile: 16; sed: 9
file content (126 lines) | stat: -rwxr-xr-x 3,744 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/usr/bin/perl

# Laurent Montel <montel@kde.org> 2006 GPL
# Reinhold Kainhofer <reinhold@kainhofer.com> 2006 GPL
#
# Port the QT3_SUPPORT QLabel constructors to the Qt3 constructors.
#

use File::Basename;
use lib dirname( $0 );
use functionUtilkde;
use strict;

open(my $F, "-|", qw(find [ac-z]* -type f));
my $file;
while ($file = <$F>) {
    next if $file =~ /\.svn/;
    chomp $file;
    next if functionUtilkde::excludeFile( $file);

    my $modified;
    my @necessaryIncludes = ();
    open(my $FILE, "<", $file) or warn "We can't open file $file:$!\n";
    my @l = map {
      my $orig = $_;
      my ($spaces, $trailer, $object, $call, $ws, $params );
      if ( ($spaces, $trailer, $object, $call, $ws, $params ) = m!^(\s*)(.*[\s\*]|)([a-zA-Z0-9_]+)(\s*=\s*new QLabel\s*)\((\s*)(.*[^\s])\s*\);$! ) {
print "Spaces: '$spaces', Trailer: '$trailer', Object: '$object', Call: '$call', WS: '$ws', Params: '$params'\n";
        my @parms = split( /,\s*/, $params );
        my $pws = $ws;

        my $buddy, my $text, my $parent, my $name, my $flags;

print "Case ";
        if ( $parms[0] =~ m/i18n\(.*/ ) {
print "1";
          $text=$parms[0];
          $parent=$parms[1];
          $name=$parms[2] if scalar(@parms)>2;
          $flags=$parms[3] if scalar(@parms)>3;
	  $pws=' ';
        } elsif ( scalar(@parms) == 5 ) {
          ($buddy, $text, $parent, $name, $flags) = @parms;
print "2";

        } elsif (scalar(@parms) == 4 ) {
          if ( $parms[3]=~m/Qt::/ ){
            ($text, $parent, $name, $flags) = @parms;
           } else {
             ($buddy, $text, $parent, $name) = @parms;
           }
print "3";

        } elsif (scalar(@parms) == 3) {
          if ( $parms[2]=~m/Qt::/ ){
            ($parent, $name, $flags) = @parms;
          } elsif ( $parms[2]=~m/^".*"$/ ) {
            ($text, $parent, $name) = @parms;
          } else {
            ($buddy, $text, $parent) = @parms;
          }
print "4";
        } elsif (scalar(@parms) == 2) {
          if ( $parms[1] =~ m/this/ ) {
            ($text, $parent) = @parms;
          } elsif ( $parms[1] =~ m/^".*"$/ ) {
            ($parent, $name) = @parms;
          } else {
            ($buddy, $text) = @parms;
          }
print "5";
        } elsif ( scalar(@parms) == 1 ) {
          $parent = $parms[0];
print "6";
        }
print "\n";

        $_ = "$spaces$trailer$object$call(";
        my $p="";
        $p.= "$text" if ( defined($text) );
        if ( defined($parent) ) {
          $p.= ",$pws" if ( defined($text) );
          $p.= "$parent";
          if ( defined($flags) ) { 
            $p.=",$ws$flags";
          }
        }
        if (defined($p)) { $_.="$ws$p$ws"; }
        $_.=");\n";
        if ( defined($name) ) {
          $_.="$spaces$object->setObjectName($ws$name$ws);\n";
        }
        if ( defined($buddy) ) {
          $_.="$spaces$object->setBuddy($ws$buddy$ws);\n";
        }
print "ORIG: $orig";
print "NEW:  $_";
# print "Original call: $call($ws$params$ws)\n";
print "Buddy: $buddy, Text: $text, Parent: $parent, Name: $name, Flags: $flags\n";


# QT4 API:
# QLabel ( QWidget * parent = 0, Qt::WFlags f = 0 )
# QLabel ( const QString & text, QWidget * parent = 0, Qt::WFlags f = 0 )
#
#
# DEPRECATED:
# QLabel ( QWidget * parent, const char * name, Qt::WFlags f = 0 )
# QLabel ( const QString & text, QWidget * parent, const char * name, Qt::WFlags f = 0 )
# QLabel ( QWidget * buddy, const QString & text, QWidget * parent = 0, const char * name = 0, Qt::WFlags f = 0 )

      }
      $modified ||= $orig ne $_;
      $_;
    } <$FILE>;

    if ($modified) {
      print "Modified: $file\n";
      open (my $OUT, ">", $file);
      print $OUT @l;
      close $OUT;
    }

}
functionUtilkde::diffFile( <$F> );