From: konrad Date: Sat, 26 Dec 2009 15:58:53 +0000 (+0000) Subject: refactored directory structure of sources X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=10f9c8724ee64dd3a12d6fec8b901cc9c3c0617f;p=web%2Fkonrad%2Fsmoke.git refactored directory structure of sources git-svn-id: https://silmor.de/svn/softmagic/smoke/trunk@353 6e3c4bff-ac9f-4ac1-96c5-d2ea494d3e33 --- diff --git a/src/README b/src/README new file mode 100644 index 0000000..473d435 --- /dev/null +++ b/src/README @@ -0,0 +1,39 @@ +README for src Directory +========================= + +The following (sub-)directories exist: + +. + main build directory, contains main widget and some global classes + +wbase + Web object base classes. + +wob + generated web objects - auto created by woc from ../wob/magicsmoke.wolf + +iface + MagicSmoke web interface classes (derived from wbase/*) + +widgets + some simple helper widgets + +templates + template handling and renderers + printing + +misc + miscellaneous helper functions and classes + (eg. code-39 barcodes, crash-handling, xml escaping) + +images + image files, icons + +crypto + cryptographic functions and helpers (key generator) + +dialogs + dialogs for sub-tasks, like displaying events/orders/etc.pp. + +mwin + main overview window and its sub-widgets (tabs) diff --git a/src/crypto/crypto.pri b/src/crypto/crypto.pri new file mode 100644 index 0000000..2958656 --- /dev/null +++ b/src/crypto/crypto.pri @@ -0,0 +1,9 @@ +HEADERS += \ + crypto/keygen.h \ + crypto/hmac.h + +SOURCES += \ + crypto/keygen.cpp \ + crypto/hmac.cpp + +INCLUDEPATH += ./crypto \ No newline at end of file diff --git a/src/hmac.cpp b/src/crypto/hmac.cpp similarity index 100% rename from src/hmac.cpp rename to src/crypto/hmac.cpp diff --git a/src/hmac.h b/src/crypto/hmac.h similarity index 100% rename from src/hmac.h rename to src/crypto/hmac.h diff --git a/src/keygen.cpp b/src/crypto/keygen.cpp similarity index 100% rename from src/keygen.cpp rename to src/crypto/keygen.cpp diff --git a/src/keygen.h b/src/crypto/keygen.h similarity index 100% rename from src/keygen.h rename to src/crypto/keygen.h diff --git a/src/configdialog.cpp b/src/dialogs/configdialog.cpp similarity index 100% rename from src/configdialog.cpp rename to src/dialogs/configdialog.cpp diff --git a/src/configdialog.h b/src/dialogs/configdialog.h similarity index 100% rename from src/configdialog.h rename to src/dialogs/configdialog.h diff --git a/src/dialogs/dialogs.pri b/src/dialogs/dialogs.pri new file mode 100644 index 0000000..825a0f7 --- /dev/null +++ b/src/dialogs/dialogs.pri @@ -0,0 +1,15 @@ +HEADERS += \ + dialogs/configdialog.h \ + dialogs/eventedit.h \ + dialogs/eventsummary.h \ + dialogs/orderwin.h \ + dialogs/moneylog.h + +SOURCES += \ + dialogs/configdialog.cpp \ + dialogs/eventedit.cpp \ + dialogs/eventsummary.cpp \ + dialogs/orderwin.cpp \ + dialogs/moneylog.cpp + +INCLUDEPATH += ./dialogs \ No newline at end of file diff --git a/src/eventedit.cpp b/src/dialogs/eventedit.cpp similarity index 100% rename from src/eventedit.cpp rename to src/dialogs/eventedit.cpp diff --git a/src/eventedit.h b/src/dialogs/eventedit.h similarity index 100% rename from src/eventedit.h rename to src/dialogs/eventedit.h diff --git a/src/eventsummary.cpp b/src/dialogs/eventsummary.cpp similarity index 100% rename from src/eventsummary.cpp rename to src/dialogs/eventsummary.cpp diff --git a/src/eventsummary.h b/src/dialogs/eventsummary.h similarity index 100% rename from src/eventsummary.h rename to src/dialogs/eventsummary.h diff --git a/src/moneylog.cpp b/src/dialogs/moneylog.cpp similarity index 100% rename from src/moneylog.cpp rename to src/dialogs/moneylog.cpp diff --git a/src/moneylog.h b/src/dialogs/moneylog.h similarity index 100% rename from src/moneylog.h rename to src/dialogs/moneylog.h diff --git a/src/orderwin.cpp b/src/dialogs/orderwin.cpp similarity index 100% rename from src/orderwin.cpp rename to src/dialogs/orderwin.cpp diff --git a/src/orderwin.h b/src/dialogs/orderwin.h similarity index 100% rename from src/orderwin.h rename to src/dialogs/orderwin.h diff --git a/src/host.cpp b/src/host.cpp deleted file mode 100644 index 601357a..0000000 --- a/src/host.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// C++ Implementation: host -// -// Description: -// -// -// Author: Konrad Rosenbaum , (C) 2007 -// -// Copyright: See COPYING file that comes with this distribution -// -// - -#include "host.h" -#include "keygen.h" -#include "msinterface.h" - -#include -#include - -#define req (MSInterface::instance()) - -MHost::MHost(QString n,QString k) -{ - setname(n); - setkey(k); -} - - -int MHost::newKey() -{ - int r=getEntropy(); - setkey(QString(getRandom(40).toHex())); - if(r<(40*8))return r; - else return 40*8; -} - -bool MHost::create() -{ - //do not attempt to save invalid or incomplete data - if(!isValid())return false; - MTSetHost ch=req->querySetHost(name(),key()); - //check success - return ch.stage()==ch.Success; -} - -bool MHost::save() -{ - //do not attempt to save invalid or incomplete data - if(!isValid())return false; - MTSetHost ch=req->querySetHost(name(),key()); - //check success - return ch.stage()==ch.Success; -} - -void MHost::deleteHost() -{ - if(!isValid())return; - req->queryDeleteHost(name()); -} diff --git a/src/host.h b/src/host.h deleted file mode 100644 index 9d3fc8e..0000000 --- a/src/host.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// C++ Interface: host -// -// Description: -// -// -// Author: Konrad Rosenbaum , (C) 2007 -// -// Copyright: See COPYING file that comes with this distribution -// -// - -#ifndef MAGICSMOKE_HOST_H -#define MAGICSMOKE_HOST_H - -#include -#include - -/**this class wraps MOHost and adds some convenience methods*/ -class MHost:public MOHost -{ - public: - /**create invalid host*/ - MHost():MOHost(){} - /**create host by name*/ - MHost(QString,QString k=QString()); - /**copy host*/ - MHost(const MHost&h):MOHost(h){} - - /**returns host name*/ - QString hostId(){return name();} - - /**returns host key (fetches it from DB if not known yet)*/ - QString hostKey(){return key();} - - /**checks host name*/ - bool isValid(){return name().value()!="";} - - /**creates new host key for this host; returns number of entropy bits*/ - int newKey(); - - /**creates host in database; returns true on success*/ - bool create(); - - /**updates host key in database; returns true on success*/ - bool save(); - - /**deletes host from database*/ - void deleteHost(); -}; - -#endif diff --git a/src/iface/iface.pri b/src/iface/iface.pri new file mode 100644 index 0000000..ac98ba4 --- /dev/null +++ b/src/iface/iface.pri @@ -0,0 +1,10 @@ +HEADERS += \ + iface/msinterface.h \ + iface/sslexception.h + + +SOURCES += \ + iface/msinterface.cpp \ + iface/sslexception.cpp + +INCLUDEPATH += ./iface \ No newline at end of file diff --git a/src/msinterface.cpp b/src/iface/msinterface.cpp similarity index 100% rename from src/msinterface.cpp rename to src/iface/msinterface.cpp diff --git a/src/msinterface.h b/src/iface/msinterface.h similarity index 100% rename from src/msinterface.h rename to src/iface/msinterface.h diff --git a/src/sslexception.cpp b/src/iface/sslexception.cpp similarity index 100% rename from src/sslexception.cpp rename to src/iface/sslexception.cpp diff --git a/src/sslexception.h b/src/iface/sslexception.h similarity index 100% rename from src/sslexception.h rename to src/iface/sslexception.h diff --git a/src/arrowdiag.png b/src/images/arrowdiag.png similarity index 100% rename from src/arrowdiag.png rename to src/images/arrowdiag.png diff --git a/src/arrowdown.png b/src/images/arrowdown.png similarity index 100% rename from src/arrowdown.png rename to src/images/arrowdown.png diff --git a/src/arrowright.png b/src/images/arrowright.png similarity index 100% rename from src/arrowright.png rename to src/images/arrowright.png diff --git a/src/files.qrc b/src/images/files.qrc similarity index 100% rename from src/files.qrc rename to src/images/files.qrc diff --git a/src/icon.ico b/src/images/icon.ico similarity index 100% rename from src/icon.ico rename to src/images/icon.ico diff --git a/src/icon.png b/src/images/icon.png similarity index 100% rename from src/icon.png rename to src/images/icon.png diff --git a/src/icon.xcf b/src/images/icon.xcf similarity index 100% rename from src/icon.xcf rename to src/images/icon.xcf diff --git a/src/code39.cpp b/src/misc/code39.cpp similarity index 100% rename from src/code39.cpp rename to src/misc/code39.cpp diff --git a/src/code39.h b/src/misc/code39.h similarity index 100% rename from src/code39.h rename to src/misc/code39.h diff --git a/src/debug.cpp b/src/misc/debug.cpp similarity index 100% rename from src/debug.cpp rename to src/misc/debug.cpp diff --git a/src/debug.h b/src/misc/debug.h similarity index 100% rename from src/debug.h rename to src/misc/debug.h diff --git a/src/domquery.cpp b/src/misc/domquery.cpp similarity index 100% rename from src/domquery.cpp rename to src/misc/domquery.cpp diff --git a/src/domquery.h b/src/misc/domquery.h similarity index 100% rename from src/domquery.h rename to src/misc/domquery.h diff --git a/src/misc.cpp b/src/misc/misc.cpp similarity index 100% rename from src/misc.cpp rename to src/misc/misc.cpp diff --git a/src/misc.h b/src/misc/misc.h similarity index 100% rename from src/misc.h rename to src/misc/misc.h diff --git a/src/misc/misc.pri b/src/misc/misc.pri new file mode 100644 index 0000000..0f4e172 --- /dev/null +++ b/src/misc/misc.pri @@ -0,0 +1,12 @@ +HEADERS += \ + misc/debug.h \ + misc/misc.h \ + misc/domquery.h + +SOURCES += \ + misc/code39.cpp \ + misc/debug.cpp \ + misc/misc.cpp \ + misc/domquery.cpp + +INCLUDEPATH += ./misc \ No newline at end of file diff --git a/src/mwin/mwin.pri b/src/mwin/mwin.pri new file mode 100644 index 0000000..aaf3570 --- /dev/null +++ b/src/mwin/mwin.pri @@ -0,0 +1,7 @@ +HEADERS += \ + mwin/overview.h + +SOURCES += \ + mwin/overview.cpp + +INCLUDEPATH += ./mwin \ No newline at end of file diff --git a/src/overview.cpp b/src/mwin/overview.cpp similarity index 100% rename from src/overview.cpp rename to src/mwin/overview.cpp diff --git a/src/overview.h b/src/mwin/overview.h similarity index 100% rename from src/overview.h rename to src/mwin/overview.h diff --git a/src/smoke.pro b/src/smoke.pro index fab326a..ccdba23 100644 --- a/src/smoke.pro +++ b/src/smoke.pro @@ -22,64 +22,21 @@ RCC_DIR = .ctmp SOURCES = \ main.cpp \ - debug.cpp \ - misc.cpp \ - keygen.cpp \ login.cpp \ - configdialog.cpp \ - hmac.cpp \ - code39.cpp \ - overview.cpp \ - eventedit.cpp \ event.cpp \ - user.cpp \ - host.cpp \ order.cpp \ shipping.cpp \ - customer.cpp \ - eventsummary.cpp \ - odtrender.cpp \ - ticketrender.cpp \ - orderwin.cpp \ - labeldlg.cpp \ - templates.cpp \ - templatedlg.cpp \ - office.cpp \ - moneylog.cpp \ - domquery.cpp \ - msinterface.cpp \ - sslexception.cpp + customer.cpp HEADERS = \ main.h \ - keygen.h \ - debug.h \ login.h \ - configdialog.h \ - hmac.h \ - overview.h \ - eventedit.h \ event.h \ - user.h \ - host.h \ order.h \ shipping.h \ - customer.h \ - eventsummary.h \ - odtrender.h \ - ticketrender.h \ - orderwin.h \ - labeldlg.h \ - misc.h \ - templates.h \ - templatedlg.h \ - office.h \ - moneylog.h \ - domquery.h \ - msinterface.h \ - sslexception.h + customer.h -RESOURCES += files.qrc +RESOURCES += images/files.qrc TRANSLATIONS = \ smoke_de.ts \ @@ -90,4 +47,12 @@ TRANSLATIONS = \ include(../zip/zip.pri) include(widgets/widgets.pri) include(wbase/wbase.pri) +include(templates/templates.pri) +include(iface/iface.pri) +include(misc/misc.pri) +include(crypto/crypto.pri) +include(dialogs/dialogs.pri) +include(mwin/mwin.pri) + +#build generated stuff last include(wob/wob.pri) diff --git a/src/labeldlg.cpp b/src/templates/labeldlg.cpp similarity index 100% rename from src/labeldlg.cpp rename to src/templates/labeldlg.cpp diff --git a/src/labeldlg.h b/src/templates/labeldlg.h similarity index 100% rename from src/labeldlg.h rename to src/templates/labeldlg.h diff --git a/src/odtrender.cpp b/src/templates/odtrender.cpp similarity index 100% rename from src/odtrender.cpp rename to src/templates/odtrender.cpp diff --git a/src/odtrender.h b/src/templates/odtrender.h similarity index 100% rename from src/odtrender.h rename to src/templates/odtrender.h diff --git a/src/office.cpp b/src/templates/office.cpp similarity index 100% rename from src/office.cpp rename to src/templates/office.cpp diff --git a/src/office.h b/src/templates/office.h similarity index 100% rename from src/office.h rename to src/templates/office.h diff --git a/src/templatedlg.cpp b/src/templates/templatedlg.cpp similarity index 100% rename from src/templatedlg.cpp rename to src/templates/templatedlg.cpp diff --git a/src/templatedlg.h b/src/templates/templatedlg.h similarity index 100% rename from src/templatedlg.h rename to src/templates/templatedlg.h diff --git a/src/templates.cpp b/src/templates/templates.cpp similarity index 100% rename from src/templates.cpp rename to src/templates/templates.cpp diff --git a/src/templates.h b/src/templates/templates.h similarity index 100% rename from src/templates.h rename to src/templates/templates.h diff --git a/src/templates/templates.pri b/src/templates/templates.pri new file mode 100644 index 0000000..9085cb3 --- /dev/null +++ b/src/templates/templates.pri @@ -0,0 +1,17 @@ +HEADERS += \ + templates/odtrender.h \ + templates/ticketrender.h \ + templates/office.h \ + templates/labeldlg.h \ + templates/templates.h \ + templates/templatedlg.h + +SOURCES += \ + templates/odtrender.cpp \ + templates/ticketrender.cpp \ + templates/office.cpp \ + templates/labeldlg.cpp \ + templates/templates.cpp \ + templates/templatedlg.cpp + +INCLUDEPATH += ./templates \ No newline at end of file diff --git a/src/ticketrender.cpp b/src/templates/ticketrender.cpp similarity index 100% rename from src/ticketrender.cpp rename to src/templates/ticketrender.cpp diff --git a/src/ticketrender.h b/src/templates/ticketrender.h similarity index 100% rename from src/ticketrender.h rename to src/templates/ticketrender.h diff --git a/src/user.cpp b/src/user.cpp deleted file mode 100644 index 4c7b18b..0000000 --- a/src/user.cpp +++ /dev/null @@ -1,257 +0,0 @@ -// -// C++ Implementation: user -// -// Description: -// -// -// Author: Konrad Rosenbaum , (C) 2007 -// -// Copyright: See COPYING file that comes with this distribution -// -// - -#include "user.h" -#include "msinterface.h" - -#include -#include -#include - -#define req (MSInterface::instance()) - -bool MUser::isValid() -{ - return QRegExp("[A-Za-z0-9_\\.,:-]+").exactMatch(name().value()); -} - -bool MUser::create(QString pwd) -{ - //do not attempt to save invalid or incomplete data - if(!isValid())return false; - //call - MTCreateUser cu=req->queryCreateUser(name(),pwd,""); - //check success - if(cu.stage()==cu.Success){ - operator=(cu.getuser().value()); - return true; - }else{ - return false; - } -} - -bool MUser::changePassword(QString pwd) -{ - //do not attempt to save invalid or incomplete data - if(!isValid())return false; - //call - MTChangePassword cp=req->queryChangePassword(name(),pwd); - //check success - if(cp.stage()==cp.Success){ - return true; - }else{ - return false; - } -} - -QString MUser::deleteUser(QString replace) -{ - if(!isValid())return QCoreApplication::translate("MUser","User not valid: cannot delete."); - MTDeleteUser du=req->queryDeleteUser(name(),replace); - if(du.stage()!=du.Success) - return " "+QCoreApplication::translate("php::",du.errorString().toAscii()); - else - return QString(); -} - -bool MUser::setDescription(QString d) -{ - //do not attempt to save invalid or incomplete data - if(!isValid())return false; - //call - MTSetUserDescription sud=req->querySetUserDescription(name(),d); - //check success - if(sud.stage()==sud.Success){ - setdescription(d); - return true; - }else{ - return false; - } -} - -MCheckList MUser::getRoles() -{ - //call - MTGetUserRoles gr=req->queryGetUserRoles(name()); - //check success - MCheckList ret; - //TODO: also get roles we don't have and do something about rights - if(gr.stage()==gr.Success){ - QListlr=gr.getroles(); - for(int i=0;ilr; - for(int i=0;iquerySetUserRoles(name(),lr); - if(sur.stage()==sur.Success)return true; - else*/ return false; -} - -MCheckList MUser::getHosts() -{/*TODO - //call - MTGetUserHosts gh=req->queryGetUserHosts(name()); - //check success - MCheckList ret; - if(gh.stage()==gh.Success){ - QList hl=gh.gethosts(); - for(int i=0;i hal; - for(int i=0;iquerySetUserHosts(name(),hal); - if(suh.stage()==suh.Success)return true; - else*/ return false; -} - -/********************************************************/ - -MAcl::MAcl() -{ - m_set=false; -} - -MAcl::MAcl(const MAcl&a) - :MCheckItem() -{ - m_role=a.m_role; - m_set=a.m_set; -} - -MAcl::MAcl(QString r,bool s) -{ - m_role=r; - m_set=s; -} - -QString MAcl::role()const -{ - return m_role; -} - -QString MAcl::key()const -{ - return m_role; -} - -QString MAcl::description()const -{ - return QCoreApplication::translate("TransactionNames::",m_role.toAscii().data()); -} - -QString MAcl::label()const -{ - QString d=description(); - if(d==m_role)return m_role; - else return m_role+": "+d; -} - -bool MAcl::isSet()const -{ - return m_set; -} - -void MAcl::set(bool b) -{ - m_set=b; -} - -MCheckItem* MAcl::copy()const -{ - return new MAcl(*this); -} - -/**************************************************/ - -MUserHost::MUserHost() -{ - m_set=false; -} - -MUserHost::MUserHost(const MUserHost&h) - :MCheckItem() -{ - m_host=h.m_host; - m_set=h.m_set; -} - -MUserHost::MUserHost(QString h,bool s) -{ - m_host=h; - m_set=s; -} - -/*TODO -MUserHost::MUserHost(const MOHostAcl&a) -{ - m_host=a.hostname(); - m_set=a.isset(); -}*/ - -QString MUserHost::host()const -{ - return m_host; -} - -QString MUserHost::key()const -{ - return m_host; -} - -QString MUserHost::label()const -{ - QString d=QCoreApplication::translate("SpecialHost",m_host.toAscii().data()); - if(d!=m_host)return m_host+": "+d; - else return m_host; -} - -bool MUserHost::isSet()const -{ - return m_set; -} - -void MUserHost::set(bool b) -{ - m_set=b; -} - -MCheckItem* MUserHost::copy()const -{ - return new MUserHost(*this); -} diff --git a/src/user.h b/src/user.h deleted file mode 100644 index e49f125..0000000 --- a/src/user.h +++ /dev/null @@ -1,119 +0,0 @@ -// -// C++ Interface: user -// -// Description: -// -// -// Author: Konrad Rosenbaum , (C) 2007 -// -// Copyright: See COPYING file that comes with this distribution -// -// - -#ifndef MAGICSMOKE_USER_H -#define MAGICSMOKE_USER_H - -#include - -#include "checkdlg.h" - -#include "MOUser.h" - -class MUser:public MOUser -{ - public: - /**create invalid user*/ - MUser():MOUser(){} - /**create user by name*/ - MUser(QString i){setname(i);} - /**copy user*/ - MUser(const MUser&u):MOUser(u){} - - /**copy user*/ - MUser& operator=(const MOUser&u){MOUser::operator=(u);return *this;} - - /**checks user name*/ - bool isValid(); - - /**creates user in database with an initial password; returns true on success*/ - bool create(QString pwd); - - /**deletes user from database; optionally: replace it by another existing user; returns an empty string on success or an error message on failure (may be a single space if no message was sent)*/ - QString deleteUser(QString replace=QString()); - - /**sets new description, both locally and on server*/ - bool setDescription(QString); - - /**returns roles of this user (queries server); returns empty list if call fails, returns filled list if call succeeds, the bool will contain whether the user has the role*/ - MCheckList getRoles(); - - /**sends the updated roles to the server; returns true on success*/ - bool setRoles(const MCheckList&); - - /**returns hosts that a user may connect from*/ - MCheckList getHosts(); - - /**send the updated host list of the user to the server; returns true on success*/ - bool setHosts(const MCheckList&); - - /**change the password of this user; returns whether successful*/ - bool changePassword(QString); -}; - -/**overwrites MCheckItem to represent an ACL item for the user*/ -class MAcl:public MCheckItem -{ - public: - MAcl(); - MAcl(const MAcl&); - MAcl(QString,bool); - - /**returns the role this ACL represents*/ - virtual QString role()const; - /**returns the role this ACL represents*/ - virtual QString key()const; - /**attempts to translate the role using the currently active language, this should yield a description of the role if successful or the role name if it fails*/ - virtual QString description()const; - /**returns a usable label (role name + description) for the MCheckDialog */ - virtual QString label()const; - /**returns whether the role is set for this user*/ - virtual bool isSet()const; - /**changes the role setting (used by MCheckDialog)*/ - virtual void set(bool); - - protected: - virtual MCheckItem* copy()const; - private: - QString m_role; - bool m_set; -}; - -// class MOHostAcl; -/**overwrites MCheckItem to represent a host item for the user*/ -class MUserHost:public MCheckItem -{ - public: - MUserHost(); - MUserHost(const MUserHost&); - MUserHost(QString,bool); - //MUserHost(const MOHostAcl&); - - /**returns the host this item represents*/ - virtual QString host()const; - /**returns the host this item represents*/ - virtual QString key()const; - /**returns a usable label (host name + opt. description for special hosts) for the MCheckDialog */ - virtual QString label()const; - /**returns whether the host is allowed for this user*/ - virtual bool isSet()const; - /**changes the host setting (used by MCheckDialog)*/ - virtual void set(bool); - - protected: - virtual MCheckItem* copy()const; - private: - QString m_host; - bool m_set; -}; - -#endif diff --git a/src/win.rc b/src/win.rc index 1bc463a..5b80ef0 100644 --- a/src/win.rc +++ b/src/win.rc @@ -1 +1 @@ -IDI_ICON1 ICON DISCARDABLE "icon.ico" +IDI_ICON1 ICON DISCARDABLE "images\icon.ico" diff --git a/woc/processor.cpp b/woc/processor.cpp index 8533779..9c68500 100644 --- a/woc/processor.cpp +++ b/woc/processor.cpp @@ -16,7 +16,7 @@ #include "qtout.h" #include "htmlout.h" -#include "../src/domquery.h" +#include "domquery.h" #include #include diff --git a/woc/woc.pro b/woc/woc.pro index 7e6a7ad..c74e054 100644 --- a/woc/woc.pro +++ b/woc/woc.pro @@ -16,10 +16,12 @@ SOURCES+= \ qtout.cpp \ phpout.cpp \ htmlout.cpp \ - ../src/domquery.cpp + ../src/misc/domquery.cpp HEADERS+= \ processor.h \ phpout.h \ qtout.h \ htmlout.h \ - ../src/domquery.h \ No newline at end of file + ../src/misc/domquery.h + +INCLUDEPATH += ../src/misc \ No newline at end of file