Chapter 4. Primeros cambios al código fuente

Eliminación de las partes que no utilizaremos

Lo primero que haremos será eliminar el código que no resulte necesario para nuestra aplicación. Por ejemplo, no utilizaremos el comando de impresión, con lo que podemos quitar la linea #include <kprinter.h> la inicialización de m_printer(0) en el constructor de TheTinter, la linea KStdAction::print(this, SLOT(filePrint()), actionCollection()); que añadía una acción estandar para imprimir, y la función TheTinter::filePrint, tanto del fichero .cpp como del .h así como la variable m_printer de la misma clase y la función TheTinterView::print .

Tampoco abriremos páginas HTML, con lo que podemos eliminar el código que busca una componente para tal fin y la utiliza. Este código está en el constructor de TheTinterView, que será suficiente con dejarlo con las tres primeras lineas: .

 // setup our layout manager to automatically add our widgets
    QHBoxLayout *top_layout = new QHBoxLayout(this);
    top_layout->setAutoAdd(true);

Además, podemos eliminar la variable m_html y algunas funciones que ya no usaremos de TheTinterView, como son signalChangeStatusbar, signalChangeCaption, slotOnURL y slotSetTitle (recuerda eliminarlas tanto del .h como del .cpp). Al eliminar la variable m_html, las funciones currentURL y openURL ya no compilarán, no te preocupes, pues las vamos a reimplementar dentro de poco, simplemente déjalas vacías (o con un

return "";
en el caso de currentURL).

Como hemos eliminado las señales de TheTinterView, podemos también eliminar el código que las conectaba en el constructor de TheTinter:

 // allow the view to change the statusbar and caption
    connect(m_view, SIGNAL(signalChangeStatusbar(const QString&)),
            this,   SLOT(changeStatusbar(const QString&)));
    connect(m_view, SIGNAL(signalChangeCaption(const QString&)),
            this,   SLOT(changeCaption(const QString&)));

Tampoco vamos a crear un nuevo documento, con lo que podemos eliminar la creación de la acción estandar openNew con la llamada a KStdAction::openNew igual que hicimos con print, junto con la función fileNew tanto del .h como del .cpp .

Para terminar, podemos eliminar el siguiente trozo de código ya que como el comentario que lo acompaña dice, no hace nada útil y está sólo para ilustrar como insertar un menú propio de nuestra aplicación.

 // this doesn't do anything useful.  it's just here to illustrate
    // how to insert a custom menu and menu item
    KAction *custom = new KAction(i18n("Cus&tom Menuitem"), 0,
                                  this, SLOT(optionsPreferences()),
                                  actionCollection(), "custom_action");

El resultado es el paso 1, s1, del tutorial.

En primer lugar, hemos eliminado la mayor parte del constructor de TheTinterView, ya que no lo vamos a utilizar para ver HTML. Además, hemos eliminado los métodos innecesarios de esa clase, junto con las señales y los slots. Si posteriormente necesitamos más señales o slots, los añadiremos individualmente.