Wrox Programmer Forums
|
C++ Programming General discussions for the C++ language. For questions specific to Microsoft's Visual C++ variant, see the Visual C++ forum instead.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the C++ Programming section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
  #1 (permalink)  
Old December 21st, 2006, 12:46 PM
Authorized User
 
Join Date: Oct 2006
Posts: 60
Thanks: 0
Thanked 0 Times in 0 Posts
Default .h hearder file error...

helo,

 why does this dev c++ can't read .h header function? i got this error --->
C:\c++\piecesmodel.cpp In file included from C:\c++\piecesmodel.cpp

here is the code:
#include <QtGui>

 #include "piecesmodel.h"

 PiecesModel::PiecesModel(QObject *parent)
     : QAbstractListModel(parent)
 {
 }

 QVariant PiecesModel::data(const QModelIndex &index, int role) const
 {
     if (!index.isValid())
         return QVariant();

     if (role == Qt::DecorationRole)
         return QIcon(pixmaps.value(index.row()).scaled(60, 60,
                          Qt::KeepAspectRatio, Qt::SmoothTransformation));
     else if (role == Qt::UserRole)
         return pixmaps.value(index.row());
     else if (role == Qt::UserRole + 1)
         return locations.value(index.row());

     return QVariant();
 }

 void PiecesModel::addPiece(const QPixmap &pixmap, const QPoint &location)
 {
     int row;
     if (int(2.0*qrand()/(RAND_MAX+1.0)) == 1)
         row = 0;
     else
         row = pixmaps.size();

     beginInsertRows(QModelIndex(), row, row);
     pixmaps.insert(row, pixmap);
     locations.insert(row, location);
     endInsertRows();
 }

 Qt::ItemFlags PiecesModel::flags(const QModelIndex &index) const
 {
     if (index.isValid()) {
         return (Qt::ItemIsEnabled | Qt::ItemIsSelectable
               | Qt::ItemIsDragEnabled | Qt::ItemIsSelectable);
     }

     return Qt::ItemIsEnabled | Qt::ItemIsDropEnabled;
 }

 bool PiecesModel::removeRows(int row, int count, const QModelIndex &parent)
 {
     if (parent.isValid())
         return false;

     if (row >= pixmaps.size() || row + count <= 0)
         return false;

     int beginRow = qMax(0, row);
     int endRow = qMin(row + count - 1, pixmaps.size() - 1);

     beginRemoveRows(parent, beginRow, endRow);

     while (beginRow <= endRow) {
         pixmaps.removeAt(beginRow);
         locations.removeAt(beginRow);
         ++beginRow;
     }

     endRemoveRows();
     return true;
 }

 QStringList PiecesModel::mimeTypes() const
 {
     QStringList types;
     types << "image/x-puzzle-piece";
     return types;
 }

 QMimeData *PiecesModel::mimeData(const QModelIndexList &indexes) const
 {
     QMimeData *mimeData = new QMimeData();
     QByteArray encodedData;

     QDataStream stream(&encodedData, QIODevice::WriteOnly);

     foreach (QModelIndex index, indexes) {
         if (index.isValid()) {
             QPixmap pixmap = qVariantValue<QPixmap>(data(index, Qt::UserRole));
             QPoint location = data(index, Qt::UserRole+1).toPoint();
             stream << pixmap << location;
         }
     }

     mimeData->setData("image/x-puzzle-piece", encodedData);
     return mimeData;
 }

 bool PiecesModel::dropMimeData(const QMimeData *data, Qt::DropAction action,
                                int row, int column, const QModelIndex &parent)
 {
     if (!data->hasFormat("image/x-puzzle-piece"))
         return false;

     if (action == Qt::IgnoreAction)
         return true;

     if (column > 0)
         return false;

     int endRow;

     if (!parent.isValid()) {
         if (row < 0)
             endRow = pixmaps.size();
         else
             endRow = qMin(row, pixmaps.size());
     } else
         endRow = parent.row();

     QByteArray encodedData = data->data("image/x-puzzle-piece");
     QDataStream stream(&encodedData, QIODevice::ReadOnly);

     while (!stream.atEnd()) {
         QPixmap pixmap;
         QPoint location;
         stream >> pixmap >> location;

         beginInsertRows(QModelIndex(), endRow, endRow);
         pixmaps.insert(endRow, pixmap);
         locations.insert(endRow, location);
         endInsertRows();

         ++endRow;
     }

     return true;
 }

 int PiecesModel::rowCount(const QModelIndex &parent) const
 {
     if (parent.isValid())
         return 0;
     else
         return pixmaps.size();
 }

 Qt::DropActions PiecesModel::supportedDropActions() const
 {
     return Qt::CopyAction | Qt::MoveAction;
 }

 void PiecesModel::addPieces(const QPixmap& pixmap)
 {
     beginRemoveRows(QModelIndex(), 0, 24);
     pixmaps.clear();
     locations.clear();
     endRemoveRows();
     for (int y = 0; y < 5; ++y) {
         for (int x = 0; x < 5; ++x) {
             QPixmap pieceImage = pixmap.copy(x*80, y*80, 80, 80);
             addPiece(pieceImage, QPoint(x, y));
         }
     }
 }

here is my , .h extension:

#ifndef PIECESLIST_H
 #define PIECESLIST_H

 #include <QAbstractListModel>
 #include <QList>
 #include <QPixmap>
 #include <QPoint>
 #include <QStringList>

 class QMimeData;

 class PiecesModel : public QAbstractListModel
 {
     Q_OBJECT

 public:
     PiecesModel(QObject *parent = 0);

     QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
     Qt::ItemFlags flags(const QModelIndex &index) const;
     bool removeRows(int row, int count, const QModelIndex &parent);

     bool dropMimeData(const QMimeData *data, Qt::DropAction action,
                       int row, int column, const QModelIndex &parent);
     QMimeData *mimeData(const QModelIndexList &indexes) const;
     QStringList mimeTypes() const;
     int rowCount(const QModelIndex &parent) const;
     Qt::DropActions supportedDropActions() const;

     void addPiece(const QPixmap &pixmap, const QPoint &location);
     void addPieces(const QPixmap& pixmap);

 private:
     QList<QPoint> locations;
     QList<QPixmap> pixmaps;
 };

 #endif

_________________________________
.::If you quit you loss, If you survive you win::.

.::JHANNY::.


Reply With Quote
  #2 (permalink)  
Old December 22nd, 2006, 08:14 AM
Friend of Wrox
 
Join Date: Jan 2006
Posts: 103
Thanks: 0
Thanked 1 Time in 1 Post
Send a message via AIM to Geo121
Default

Dev-C++ does support the .h header function

you may want to make sure that piecesmodel.h is in the same location as your library files

or that your classpath is set to it

there is a way using the IDE that dev-C++ lets you link to it

currently off of the top of my head I don't remember it but I will look it up

but the problem is that it just can't find the piecesmodel.h file to link to

~ Geo

~ Don't take life too seriously, you'll never get out alive!
Reply With Quote
  #3 (permalink)  
Old December 22nd, 2006, 09:27 AM
Authorized User
 
Join Date: Oct 2006
Posts: 60
Thanks: 0
Thanked 0 Times in 0 Posts
Default

hi geo,

  yes my problem is that it can't find the .h file to link to. not just only that piecesmodel.h where not able to link but all my .h doesn't work...

pls post your idea if you have...thanks...

_________________________________________
.::If you quit you loss, If you survive you win::.

.::JHANNY::.

Reply With Quote
  #4 (permalink)  
Old January 11th, 2007, 07:59 AM
Friend of Wrox
 
Join Date: Jan 2006
Posts: 103
Thanks: 0
Thanked 1 Time in 1 Post
Send a message via AIM to Geo121
Default

apparently your installation had a fault of some sort or you changed the setting that linked to the library files and now its coming up with an error

~ Geo

~ Don't take life too seriously, you'll never get out alive!
Reply With Quote
  #5 (permalink)  
Old January 12th, 2007, 08:12 AM
Authorized User
 
Join Date: Oct 2006
Posts: 60
Thanks: 0
Thanked 0 Times in 0 Posts
Default

helo geo,

 can you give some details how to set up my library files in order that i can fix my problem.......

thanks..

_________________________________________
.::If you quit you loss, If you survive you win::.

.::JHANNY::.




Reply With Quote
  #6 (permalink)  
Old January 12th, 2007, 08:14 AM
Authorized User
 
Join Date: Oct 2006
Posts: 60
Thanks: 0
Thanked 0 Times in 0 Posts
Default

helo geo,

 regarding my game puzzle program.. do you have any idea about word puzzle?

thanks...

_________________________________________
.::If you quit you loss, If you survive you win::.

.::JHANNY::.


Reply With Quote
  #7 (permalink)  
Old January 16th, 2007, 08:38 AM
Friend of Wrox
 
Join Date: Jan 2006
Posts: 103
Thanks: 0
Thanked 1 Time in 1 Post
Send a message via AIM to Geo121
Default

As far as your library files are concerned the only advice I can give you is to reinstall Dev-C++ because I do not know your computer.

For the word puzzle game I would suggest possibly a letter scramble or word jumble or a mad libs of some sort

~ Geo

~ Don't take life too seriously, you'll never get out alive!
Reply With Quote





Similar Threads
Thread Thread Starter Forum Replies Last Post
Error in File Uploading Succeedor Classic ASP Basics 0 May 15th, 2007 09:13 PM
File Already exists Error srsandhu Classic ASP Basics 7 February 23rd, 2007 04:21 PM
This file is not well-formed error crmpicco XML 1 April 25th, 2005 11:21 AM
Error loading file bmains VS.NET 2002/2003 1 September 2nd, 2004 12:52 PM
file upload error Ashleek007 Beginning PHP 2 June 8th, 2004 05:44 PM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.