#!/bin/bash
#----------------------------------------------------------------------
# Description: Script para reemplazar todas las cadenas #include desde
#              su formato QT3 al nuevo QT4.
# Author: Fco. Javier M. C. <fcojavmc@todo-redes.com>
# Created at: Sat Feb 11 23:39:30 CET 2006
#    
# Copyright (c) 2006 Fco. Javier M. C.  All rights reserved.
#
#----------------------------------------------------------------------


# Directorio (CON RUTA ABSOLUTA) donde escanear archivos con cadenas a reemplazar.

directorio="/dir" # cambiar

# Tamaño del array.

TamArray=35

# includeorigen = contiene las cadenas QT3.
# includedestino = continen las nuevas cadenas QT4.

includeorigen[1]="#include <qlayout.h>"		; includedestino[1]="#include <QLayout>"
includeorigen[2]="#include <qmap.h>"		; includedestino[2]="#include <QMap>"
includeorigen[3]="#include <q3listview.h>"	; includedestino[3]="#include <Q3ListView>"
includeorigen[4]="#include <q3mainwindow.h>"	; includedestino[4]="#include <Q3MainWindow>"
includeorigen[5]="#include <q3vbox.h>"		; includedestino[5]="#include <Q3VBox>"
includeorigen[6]="#include <qworkspace.h>"	; includedestino[6]="#include <QWorkspace>"
includeorigen[7]="#include <q3table.h>"		; includedestino[7]="#include <Q3Table>"
includeorigen[8]="#include <qlineedit.h>"	; includedestino[8]="#include <QLineEdit>"
includeorigen[9]="#include <qwidget.h>"		; includedestino[9]="#include <QWidget>"
includeorigen[10]="#include <qobject.h>"	; includedestino[10]="#include <QObject>"
includeorigen[11]="#include <qfile.h>"		; includedestino[11]="#include <QFile>"
includeorigen[12]="#include <qstring.h>"	; includedestino[12]="#include <QString>"
includeorigen[13]="#include <q3ptrlist.h>"	; includedestino[13]="#include <Q3PtrList>"
includeorigen[14]="#include <qmessagebox.h>"	; includedestino[14]="#include <QMessageBox>"
includeorigen[15]="#include <qlabel.h>"		; includedestino[15]="#include <QLabel>"
includeorigen[16]="#include <qcombobox.h>"	; includedestino[16]="#include <QComboBox>"
includeorigen[17]="#include <q3popupmenu.h>"	; includedestino[17]="#include <Q3PopupMenu>"
includeorigen[18]="#include <qtoolbutton.h>"	; includedestino[18]="#include <QToolButton>"
includeorigen[19]="#include <q3textedit.h>"	; includedestino[19]="#include <Q3TextEdit>"
includeorigen[20]="#include <qcheckbox.h>"	; includedestino[20]="#include <QCheckBox>"
includeorigen[21]="#include <q3filedialog.h>"	; includedestino[21]="#include <Q3FileDialog>"
includeorigen[22]="#include <qpixmap.h>"	; includedestino[22]="#include <QPixmap>"
includeorigen[23]="#include <q3frame.h>"	; includedestino[23]="#include <Q3Frame>"
includeorigen[24]="#include <qtextstream.h>"	; includedestino[24]="#include <QTextStream>"
includeorigen[25]="#include <q3listbox.h>"	; includedestino[25]="#include <Q3ListBox>"
includeorigen[26]="#include <qimage.h>"		; includedestino[26]="#include <QImage>"
includeorigen[27]="#include <q3toolbar.h>"	; includedestino[27]="#include <Q3ToolBar>"
includeorigen[28]="#include <qmenubar.h>"	; includedestino[28]="#include <QMenuBar>"
includeorigen[29]="#include <qstatusbar.h>"	; includedestino[29]="#include <QStatusBar>"
includeorigen[30]="#include <qprinter.h>"	; includedestino[30]="#include <QPrinter>"
includeorigen[31]="#include <qapplication.h>"	; includedestino[31]="#include <QApplication>"
includeorigen[32]="#include <q3accel.h>"	; includedestino[32]="#include <Q3Accel>"
includeorigen[33]="#include <qpainter.h>"	; includedestino[33]="#include <QPainter>"
includeorigen[34]="#include <q3paintdevicemetrics.h>" ; includedestino[34]="#include <Q3PaintDeviceMetrics>"
includeorigen[35]="#include <q3whatsthis.h>"	; includedestino[35]="#include <Q3WhatsThis>"

# Cambia al directorio de trabajo.

cd $directorio

# Recorre todo el array.

for ((it1=1; it1<$TamArray; it1++)); do

    # Escanea todos los archivos del directorio buscando la cadena de origen.

    for archivo in `grep "${includeorigen[$it1]}" * -l`; do
	# Realiza la sustitucion de la cadena y lo guarda con otro nombre.
        sed "s/${includeorigen[$it1]}/${includedestino[$it1]}/" $directorio/$archivo > $directorio/$archivo.bk
	# Recupera el nombre original del archivo.
        mv $directorio/$archivo.bk $directorio/$archivo
        echo "$archivo - Cambiado OK."
    done
done
