Warning, file /sdk/kde-dev-scripts/kf5/convert-kdoublenuminput.pl was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 #!/usr/bin/perl -w 0002 0003 # Laurent Montel <montel@kde.org> (2014) 0004 # KDoubleNumInput -> QSpinBox 0005 # find -iname "*.cpp" -o -iname "*.h"|xargs kde-dev-scripts/kf5/convert-kdoublenuminput.pl 0006 0007 use strict; 0008 use File::Basename; 0009 use lib dirname($0); 0010 use functionUtilkde; 0011 0012 foreach my $file (@ARGV) { 0013 my %varname = (); 0014 my $modified; 0015 open(my $FILE, "<", $file) or warn "We can't open file $file:$!\n"; 0016 my @l = map { 0017 my $orig = $_; 0018 my $regexp = qr/ 0019 ^(\s*) # (1) Indentation, possibly "Classname *" (the ? means non-greedy) 0020 (.*?) # (2) Possibly "Classname *" (the ? means non-greedy) 0021 (\w+) # (3) variable name 0022 \s*=\s* # assignment 0023 new\s+KDoubleNumInput\s*\((.*)\) # (4) new KDoubleNumInput(...,...,...,...); 0024 (.*)$ # (5) afterreg 0025 /x; # /x Enables extended whitespace mode 0026 if (my ($indent, $left, $var, $argument, $afterreg) = $_ =~ $regexp) { 0027 warn "kdoublenuminput found $var $argument\n"; 0028 0029 $varname{$var} = 1; 0030 my ($lower, $upper, $singleStep, $value, $parent, $base, $after); 0031 my $constructor_regexp = qr/ 0032 ^([^,]*)\s* # lower 0033 ,\s*([^,]*)\s* # upper 0034 ,\s([^,]*) # singleStep 0035 ,\s([^,]*) # value 0036 ,\s([^,]*) # widget 0037 (?:,\s([^,]*))? # base 0038 (.*)$ # after 0039 /x; 0040 if ( ($lower, $upper, $singleStep, $value, $parent, $base, $after) = $argument =~ $constructor_regexp ) { 0041 $_ = $indent . $left . $var . " = new QDoubleSpinBox($parent);" . $after . "\n"; 0042 0043 $_ .= $indent . $var . "->setMaximum($upper);" . $after . "\n"; 0044 $_ .= $indent . $var . "->setMinimum($lower);" . $after . "\n"; 0045 $_ .= $indent . $var . "->setSingleStep($singleStep);" . $after . "\n"; 0046 $_ .= $indent . $var . "->setValue($value);" . $after . "\n"; 0047 if ($base) { 0048 $_ .= $indent . $var . "->setDisplayIntegerBase($base);" . $after . "\n"; 0049 } 0050 } 0051 } 0052 my $regexpRange = qr/ 0053 ^(\s*) # (1) Indentation, possibly "Classname *" (the ? means non-greedy) 0054 (\w+) # (2) variable name 0055 \->setRange\s*\((.*)\) # (3) argument 0056 (.*)$ # (4) afterreg 0057 /x; # /x Enables extended whitespace mode 0058 if (my ($indent, $var, $argument, $afterreg) = $_ =~ $regexpRange) { 0059 warn "found setRange \'$var\'\n"; 0060 if ( defined $varname{$var} ) { 0061 my $argument_regexp = qr/ 0062 ^([^,]*)\s* # mini 0063 ,\s*([^,]*)\s* # maxi 0064 ,\s([^,]*) # singleStep 0065 (.*)$ # after 0066 /x; 0067 if (my ($minimum, $maximum, $singleStep) = $argument =~ $argument_regexp) { 0068 $_ = $indent . "$var->setRange($minimum, $maximum);\n"; 0069 $_ .= $indent . "$var->setSingleStep($singleStep);\n"; 0070 } 0071 } 0072 } 0073 if (/(\w+)\-\>setSliderEnabled\s*\((.*)\)/) { 0074 my $var = $1; 0075 warn "found setSliderEnabled $2\n"; 0076 if ( defined $varname{$var} ) { 0077 my $sliderargs = $2; 0078 $sliderargs =~ s, ,,g; 0079 if ($sliderargs eq "false") { 0080 $_ = ""; 0081 } else { 0082 $_ = "//PORT SCRIPT: Warning QSpinBox doesn't support slider: $_\n"; 0083 } 0084 } 0085 } 0086 0087 s/\bKDoubleNumInput\b/QDoubleSpinBox/g; 0088 s/\<KDoubleNumInput\b\>/\<QQDoubleSpinBox>/ if (/#include/); 0089 s/\<kdoublenuminput.h\>/\<QDoubleSpinBox>/ if (/#include/); 0090 $modified ||= $orig ne $_; 0091 $_; 0092 } <$FILE>; 0093 0094 if ($modified) { 0095 open (my $OUT, ">", $file); 0096 print $OUT @l; 0097 close ($OUT); 0098 warn "$file: Verify maximum value. KDoubleSpinBox defined maximum as 9999.0, but QSpinBox define it as 99.99.\n"; 0099 } 0100 } 0101 0102 functionUtilkde::diffFile( "@ARGV" );