• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

keduca

kgallerydialog.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002                           kgallerydialog.cpp  -  description
00003                              -------------------
00004     begin                : mar abr 1 2003
00005     copyright            : (C) 2003 by Javier Campos
00006     email                : javi@asyris.org
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #include "kgallerydialog.h"
00019 #include "kgallerydialog.moc"
00020 
00021 #include <kdebug.h>
00022 #include <kconfig.h>
00023 #include <klocale.h>
00024 #include <kmessagebox.h>
00025 #include <kio/netaccess.h>
00026 
00027 #include <qlineedit.h>
00028 #include <qlistview.h>
00029 #include <qsplitter.h>
00030 #include <qdom.h>
00031 #include <qfileinfo.h>
00032 
00033 KGalleryDialog::KGalleryDialog(QWidget *parent, const char *name )
00034       :KGalleryDialogBase(parent,name)
00035 {
00036   configRead();
00037 }
00038 
00039 KGalleryDialog::~KGalleryDialog()
00040 {
00041 }
00042 
00044 bool KGalleryDialog::openFile(const KURL &url) {
00045     QString tmpFile;
00046     bool returnval=false;
00047     if( KIO::NetAccess::download( url, tmpFile, this ) )
00048     {
00049         returnval=loadFile( tmpFile );
00050         if (returnval) {
00051             _currentURL = url;
00052             kdDebug()<<"... load successful: "<<_currentURL.url()<<endl;
00053         }
00054 
00055         KIO::NetAccess::removeTempFile( tmpFile );
00056     }else
00057         kdDebug()<<"FileRead::openFile(): download NOT successful: "<<url.url()<<endl;
00058 
00059     return returnval;
00060 }
00061 
00062 bool KGalleryDialog::loadFile( const QString &filename )
00063 {
00064     QDomDocument doc("document.xml");
00065 
00066     QFile file(filename);
00067 
00068     if(!file.open(IO_ReadOnly))
00069     {
00070         return false;
00071     }
00072     doc.setContent( &file );
00073 
00074     if( doc.doctype().name() != "educagallery" )
00075     { return false; }
00076            
00077     QDomElement docElem = doc.documentElement();
00078     QDomNode n = docElem.firstChild();
00079 
00080     kdDebug()<<"... load attributes: "<< docElem.tagName() <<endl;
00081     
00082     QDomNodeList dnList = n.childNodes();
00083     for( unsigned int i = 0; i < dnList.count(); ++i)
00084     {
00085         QListViewItem *newItem = new QListViewItem(listDocuments);
00086         QDomElement serversNode = dnList.item(i).toElement();
00087 
00088         kdDebug()<<"... load attributes: "<< serversNode.text() <<endl;
00089         
00090         newItem->setText( 0, serversNode.  text() );
00091         newItem->setText( 1, serversNode.attribute( "language" ) );
00092         newItem->setText( 2, serversNode.attribute( "category" ) );
00093         newItem->setText( 3, serversNode.attribute( "type" ) );
00094         newItem->setText( 4, serversNode.attribute( "author" ) );
00095         newItem->setText( 5, serversNode.attribute( "address" ) );        
00096         newItem->setSelected(false);
00097     }
00098 
00099     file.close();
00100 
00101     return true;
00102 }
00103 
00105 void KGalleryDialog::configRead()
00106 {
00107     KConfig *appconfig = KGlobal::config();
00108     QStringList servers;
00109     QStringList ipservers;
00110     QStringList::Iterator it_ipservers;
00111         
00112     appconfig->setGroup( "kgallerydialog" );
00113     _split->setSizes( appconfig->readIntListEntry("Splitter_size") );
00114     QSize defaultSize(500,400);
00115     resize( appconfig->readSizeEntry("Geometry", &defaultSize ) );
00116        
00117     appconfig->setGroup("Galleries Servers");
00118     servers    = appconfig->readListEntry ( "Servers" );
00119     ipservers  = appconfig->readListEntry ( "ServersIP" );
00120 
00121     if( ipservers.count() == 0 )
00122       {
00123       servers.append( "KEduca Main Server" );
00124       ipservers.append( "http://keduca.sourceforge.net/gallery/gallery.edugallery" );
00125       }
00126 
00127     it_ipservers=ipservers.begin();
00128     for ( QStringList::Iterator it_servers = servers.begin(); it_servers != servers.end(); ++it_servers )
00129     {
00130       QListViewItem *newItem = new QListViewItem(listServers);
00131       newItem->setText(0,*it_servers);
00132       newItem->setText(1,*it_ipservers);
00133       newItem->setSelected(false);
00134       ++it_ipservers;
00135     }
00136 }
00137 
00139 void KGalleryDialog::configWrite()
00140 {
00141     QStringList servers;
00142     QStringList ipservers;
00143     KConfig *config = KGlobal::config();
00144 
00145     config->setGroup( "kgallerydialog" );
00146     config->writeEntry("Splitter_size", _split->sizes() );
00147     config->writeEntry("Geometry", size() );
00148     config->sync();
00149 
00150     config->setGroup("Galleries Servers");
00151     QListViewItem *item = listServers->firstChild();
00152     while (item) {
00153         servers.append( item->text(0) );
00154         ipservers.append( item->text(1) );
00155         item = item->nextSibling();
00156     }
00157     config->writeEntry("Servers", servers);
00158     config->writeEntry("ServersIP", ipservers);
00159 
00160     config->sync();
00161 }
00162 
00164 void KGalleryDialog::slotButtonAdd()
00165 {
00166       if( (lineName->text()).isEmpty() || (lineAddress->text()).isEmpty() )
00167         {
00168         KMessageBox::sorry(this, i18n("You need to specify a server!"));
00169         return;
00170         }
00171         
00172         QListViewItem *newItem = new QListViewItem(listServers);
00173         newItem->setText(0,lineName->text());
00174         newItem->setText(1,lineAddress->text());
00175         newItem->setSelected(false);              
00176 }
00177 
00179 void KGalleryDialog::accept()
00180 {
00181     if (getURL().isEmpty())
00182       KMessageBox::sorry(this, i18n("You need to specify the file to open!"));
00183     else
00184     {
00185       configWrite();
00186       KGalleryDialogBase::accept();
00187     }    
00188 //    done( QDialog::Accepted );
00189 }
00190 
00192 void KGalleryDialog::slotServerSelected( QListViewItem *item )
00193 {
00194     if (!item)
00195         return;
00196 
00197     KURL url_server = KURL( item->text(1) );
00198 
00199     listDocuments->clear();
00200     openFile( url_server );
00201 }
00202 
00204 KURL KGalleryDialog::getURL()
00205 {
00206   QListViewItem *item = listDocuments->currentItem();
00207 
00208   if (!item)
00209     return KURL();
00210 
00211   QString urlAddress = item->text(5);
00212     
00213   if( _currentURL.isLocalFile() && !KURL(urlAddress).isValid() )
00214     {
00215     if( !QFileInfo(urlAddress).exists() )
00216       urlAddress = _currentURL.directory(false,true) + urlAddress;
00217     kdDebug()<< "Imagen en local" <<endl;
00218     } else if( !_currentURL.isLocalFile() && !KURL(urlAddress).isValid() )
00219        urlAddress = _currentURL.protocol() + "://" + _currentURL.host() + _currentURL.directory(false,true) + urlAddress;
00220     
00221   kdDebug()<< urlAddress <<endl;
00222   return KURL( urlAddress );
00223 }
00224 
00226 void KGalleryDialog::putURL(const KURL &urlFile)
00227 {
00228         QListViewItem *newItem = new QListViewItem(listServers);
00229         newItem->setText( 1, urlFile.url() );
00230         newItem->setSelected(false);
00231 }

keduca

Skip menu "keduca"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members

API Reference

Skip menu "API Reference"
  • keduca
  • kstars
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal