/************************************************************************ * $Id: publication.h 661 2011-04-05 13:16:53Z elzubeir $ * * ------------ * Description: * ------------ * * (C) Copyright 2009-2011 ALLCONTENT. All rights reserved. * * ----------------- * Revision Details: (Updated by Revision Control System) * ----------------- * $Date: 2011-04-05 17:16:53 +0400 (Tue, 05 Apr 2011) $ * $Author: elzubeir $ * $Revision: 661 $ * $HeadURL: file:///opt/svn/socialhose/trunk/app/ClippingStation/publication.h $ * ************************************************************************/ #ifndef PUBLICATION_H #define PUBLICATION_H #include #include #include #include #include #include #include "issue.h" class Publication { public: //! \fn Publication() //! default contructor //! \author elzubeir Publication(); //! \fn //! desctructor //! \author elzubeir ~Publication(); //! \fn setId() //! set the publication id //! \param[in] id of the publication //! \author elzubeir void setId(int id); //! \fn setName() //! set the name of the publication //! \param[in] name of the publication //! \author elzubeir void setName(QString name); //! \fn setDatabase() //! set the database object of the publication //! \param[in] database object //! \author elzubeir void setDatabase(QSqlDatabase &database); //! \fn id() //! gets the id of the publicaiton //! \returns id of the publication //! \author elzubeir int id(); //! \fn name() //! name of the publication //! \returns the name of the publication //! \author elzubeir QString name(); //! \fn circulation() //! gives the publication circulation //! \returns the pub circulation //! \author elzubeir int circulation(); //! \fn country() //! the pub countries //! \returns the pub countries //! \author elzubeir QString country(); //! \fn columnWidth() //! the pub (newspaper) column width //! \returns the column width //! \author elzubeir int columnWidth(); //! \fn type() //! the pub type (mag or newspaper) //! \returns returns te pub type //! \author elzubeir int type(); //! \fn size() //! the pub size //! \returns returns the pub size //! \author elzubeir int size(); //! \fn adRate() //! the pub ad rate //! \returns returns the pub add rate //! \author elzubeir qreal adRate(); //! \fn skipOcr() //! returns the skip ocr of the publication //! \returns skip ocr flag //! \author elzubeir bool skipOcr(); //! \fn language() //! language of the publication //! \returns the language of the publication //! \author elzubeir QString language(); //! \fn initalizeViews() //! initalize the issues and articles view //! \param[out] issue view object to be initalized //! \param[out] article view object to be initalized //! \author elzubeir void initalizeViews(QTreeView *issuesView, QTreeView *clippingsView); //! \fn loadIssues() //! load the issues and their sections and pages and add them to the view //! \param[out] the view to add the issues to //! \param[in] the local cache directory //! \author elzubeir void loadIssues (QTreeView *view, QString localcachDir); //! \fn loadIssuesWithPreclipsOnly() //! load the issues that contains the preclips only and add them to the view //! \param[out] the view to add the issues to //! \param[in] the local cache directory //! \author elzubeir void loadIssuesWithPreclipsOnly (QTreeView *view, QString localcachDir); void loadUndoneIssuesOnly(QTreeView *view); //! \fn loadIssuesOnly() //! load the issues only and add them to the view //! \param[out] the view to add the issues to //! \author elzubeir void loadIssuesOnly (QTreeView *view); //! \fn loadIssueSections() //! load the sections and pages for a certain issue //! \param[out] the issue item where to add the sections to //! \param[in] the issue date to load its sections //! \param[in] the local cache directory //! \author elzubeir void loadIssueSections (QStandardItem *issueItem, QString issueDate, QString localcachDir); //! \fn loadFilteredIssues() //! load filtered issues based on the filter criteria passed //! \param[out] the view to add the issues to //! \param[in] the local cache directory //! \param[in] the start date of the issue //! \param[in] the end date of the issue //! \param[in] keyword to search for //! \param[in] ocr searchword to search for //! \author elzubeir void loadFilteredIssues (QTreeView *view, QSqlDatabase &ocrDatabase, QString localcachDir, QString &startDate, QString &endDate, QString keyword, QString ocrSearchword, QString status); //! \fn addImageCutoutsToIssues() //! load cutouts of the pages in the issue, and add them to the view //! \param[out] the view to add the cutouts to //! \param[in] should we populate the cutouts in all the sections or just for a specific section //! \author elzubeir void addImageCutoutsToIssues (QTreeView *view, bool populateAllSections); //! \fn setCurrentIssue() //! set the current selected issue for the pub //! \param[in] the issue date to be selected //! \author elzubeir void setCurrentIssue(QString date); //! \fn removeIssueFromIssues() //! removes issue from view //! \param[out] the view to remove the issues from //! \param[in] the issue date to be removed //! \author elzubeir void removeIssueFromIssues (QTreeView*view, QString issueDate); //! \fn currentIssue() //! the current selected issue //! \return a pointer to the current selected issue //! \author elzubeir Issue* currentIssue(); //! \fn issue() //! the issue of a certain date //! \param[in] the issue date to retreive //! \returns a pointer to the issue where the date's passed //! \author elzubeir Issue* issue(QString date); //! \fn isMagazine() //! is the current publication's type is magazine //! \returns true if magazine, false if newspaper //! \author elzubeir bool isMagazine(); //! \fn publicationsWithPreclips() //! gets a list of publication names that contains a preclipps //! \param[in] the database object //! \returns list of publication name //! \author elzubeir static QStringList publicationsWithPreclips(QSqlDatabase &database); //! \fn publicationsFiltered() //! gets a list of publications //! \param[in] the database object //! \param[in] keyword to search for //! \param[in] the start date of the issue //! \param[in] the end date of the issue //! \param[in] type of publicaiton //! \param[in] id of country //! \param[in] ocr searchword to search for //! \returns list of publication name //! \author elzubeir static QStringList publicationsFiltered(QSqlDatabase &database, QSqlDatabase &ocrDatabase, QString &keyword, QString &startDate, QString &endDate, int type, int country, QString &ocrSearchword, QString &status); static QStringList publicationsWithUndoneIssues(QSqlDatabase &database); private: //! \fn getFilenamesFromDatabase() //! get image names from the database for a certain section in the issues //! \param[in] the publication id //! \param[in] the issue date //! \param[in] section id //! \param[in] local cache directory path //! \param[out] list of files with their local paths //! \param[out] list of files with their remote paths //! \param[out] the issues local path //! \param[out] the issues remote path //! \returns list of items containing the image names and their info //! \author elzubeir QList getFilenamesFromDatabase(int publicationId, QString issueDate, int sectionId, QString localcachDir, QStringList &localFiles, QStringList &remoteFiles, QString &localIssuePath, QString &remoteIssuePath); //! \fn retrievePublicationInfo() //! populate the publication info from database //! \author elzubeir void retrievePublicationInfo(); private: //! database object QSqlDatabase m_database; //! id int m_id; //! name QString m_name; //! country QString m_country; //! circulation int m_circulation; //! colum width int m_columnWidth; //! type int m_type; //! size int m_size; //! ad rate value qreal m_adRate; //! skip ocr for the publication bool m_skipOcr; //! language QString m_language; //! list of issues QList m_issues; //! current selected issue int m_currentIssueIndex; //! list of section files selected QStringList m_currentIssueSectionFilesList; //! list of selected image index int m_currentSelectedImageIndex; //! current selected section in the issue QString m_currentIssueSection; }; #endif // PUBLICATION_H