Active Topics

 


Reply
Thread Tools
eitama's Avatar
Posts: 702 | Thanked: 334 times | Joined on Feb 2010 @ Israel.
#1
Hi,

Edit : I don't really remember what solved this,
But all the code for a working App can be found in the sources of horizontal-call.


I am working on an app for the N900, written in C++/Qt Mobility for PR1.2.

So far, I got a nice GUI running on my phone via Qt + Madde,
and I am stuck trying to make QContactManager to give me what I need. The Qt documentation examples don't work, and I cannot find my way around this problem, been trying for 2 days now.

So the problem is like this : I want to fetch ALL the contacts from the address book, one by one and do some parsing on them,
I am stuck at even accessing the contacts API, I am trying to create a QContactManager object, and I am getting an error accessing it, after including <QContactManager>, I still don't get any autocompletes for it, and it remains out of scope.

Can anyone help me?

Edit : My problem :
__________________
| Developer of Horizontal-Call - Call your contacts, fast! |
| Reverse SSH - access your N900 from anywhere, anytime |
| Using Samsung Galaxy S GT-i9000 and Nokia N900 |
| DonateMe - If you feel I helped you in a very good way, feel free to donate |

Last edited by eitama; 2010-09-03 at 16:16. Reason: Solved
 
eitama's Avatar
Posts: 702 | Thanked: 334 times | Joined on Feb 2010 @ Israel.
#2
And OFC this app goes to garage and repositories when it's done, so please please help me (;
__________________
| Developer of Horizontal-Call - Call your contacts, fast! |
| Reverse SSH - access your N900 from anywhere, anytime |
| Using Samsung Galaxy S GT-i9000 and Nokia N900 |
| DonateMe - If you feel I helped you in a very good way, feel free to donate |
 
eitama's Avatar
Posts: 702 | Thanked: 334 times | Joined on Feb 2010 @ Israel.
#3
Bump ):
I am totally stuck, I reinstalled everything, and I am not able to compile most of the examples that come with Qt...
__________________
| Developer of Horizontal-Call - Call your contacts, fast! |
| Reverse SSH - access your N900 from anywhere, anytime |
| Using Samsung Galaxy S GT-i9000 and Nokia N900 |
| DonateMe - If you feel I helped you in a very good way, feel free to donate |
 
Posts: 435 | Thanked: 769 times | Joined on Apr 2010
#4
I tried to make a radio fm app but got problems with QRadioTuner qtmobility class. It seams not to be working.
On the net I found this page and in the bottom in the platform compatibility it shows almost 0 compatibility with maemo 5...
http://doc.qt.nokia.com/qtmobility-1.0-tp/
 
Posts: 402 | Thanked: 229 times | Joined on Nov 2009 @ Missouri, USA
#5
Mind posting the entire code? Hard to say whats wrong without the full context.
__________________
aspidites | blog | aspidites@inbox.com
 
eitama's Avatar
Posts: 702 | Thanked: 334 times | Joined on Feb 2010 @ Israel.
#6
Originally Posted by gionni88 View Post
I tried to make a radio fm app but got problems with QRadioTuner qtmobility class. It seams not to be working.
On the net I found this page and in the bottom in the platform compatibility it shows almost 0 compatibility with maemo 5...
http://doc.qt.nokia.com/qtmobility-1.0-tp/
Hmmm, thanks for the info! I wonder how old that document is...
But still, it doesn't feel like a compatibility problem.
__________________
| Developer of Horizontal-Call - Call your contacts, fast! |
| Reverse SSH - access your N900 from anywhere, anytime |
| Using Samsung Galaxy S GT-i9000 and Nokia N900 |
| DonateMe - If you feel I helped you in a very good way, feel free to donate |
 
Posts: 402 | Thanked: 229 times | Joined on Nov 2009 @ Missouri, USA
#7
Originally Posted by eitama View Post
Hmmm, thanks for the info! I wonder how old that document is...
But still, it doesn't feel like a compatibility problem.
Dunno, but this is up-to-date.
__________________
aspidites | blog | aspidites@inbox.com
 
eitama's Avatar
Posts: 702 | Thanked: 334 times | Joined on Feb 2010 @ Israel.
#8
Originally Posted by aspidites View Post
Mind posting the entire code? Hard to say whats wrong without the full context.
Sure!

I have written comments to where I have problems,
Right now this compiles just fine, ofc there is a UI file.
If it's needed i'll post it as well.

H File :
Code:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QGridLayout>
#include <QPushButton>

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

public slots:
    void callButtonClicked();
    void insertChar();
    void hangUpButtonClicked();

protected:
    void changeEvent(QEvent *e);

private:
    Ui::MainWindow *ui;
    void CreateLetter(QString letter);
    QGridLayout *lettersLayout;
    int row, col;
    QString abc;
    int currentLetter;
    int numberOfLettersPerRow;
    QList<QPushButton*> *existingLetterButtons;
    void init();
    int getNumberOfContacts();

};

#endif // MAINWINDOW_H



CPP File :
Code:
#include "mainwindow.h"
#include "ui_mainwindow.h"
// Something needs to be included to make this work.
// I Don't really know what, but from the help - I can realize that it is : #include <qcontactmanager.h>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    lettersLayout = new QGridLayout();
    lettersLayout->setMargin(0);
    abc = "abcdefghijklmnopqrstuvwxyz";
    numberOfLettersPerRow = 3;
    existingLetterButtons = new QList<QPushButton*>();
    init();
}

int MainWindow::getNumberOfContacts()
{
    // TODO - Here I want to fetch all the number of contacts in the contact list, and itterate through them.
    // I can't get this to compile...
    return 0;
}

void MainWindow::init()
{
    row = col = currentLetter = 0;
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::hangUpButtonClicked()
{
    for (int i = 0; i < existingLetterButtons->size(); i++)
    {
        QPushButton *tempButton = existingLetterButtons->at(i);
        delete tempButton;
    }
    existingLetterButtons->clear();
    init();
}

void MainWindow::changeEvent(QEvent *e)
{
    QMainWindow::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

void MainWindow::callButtonClicked()
{
    CreateLetter(abc.at(currentLetter));
    if (currentLetter == abc.length() - 1)
    {
        currentLetter = 0;
    } else
    {
        currentLetter++;
    }
}

void MainWindow::insertChar()
{
    QPushButton *tempButton = qobject_cast<QPushButton *>(QObject::sender());
    ui->contactEntry->insert(tempButton->text());
}

void MainWindow::CreateLetter(QString letter)
{
    QPushButton *myButton = new QPushButton();
    myButton->sizePolicy().setVerticalPolicy(QSizePolicy::Minimum);
    myButton->sizePolicy().setHorizontalPolicy(QSizePolicy::Minimum);
    myButton->sizeHint().setHeight(10);
    myButton->sizeHint().setWidth(10);
    existingLetterButtons->insert(existingLetterButtons->size(),myButton);
    myButton->setText(letter);
    connect(myButton, SIGNAL(clicked()), this, SLOT(insertChar()));
    lettersLayout->addWidget(myButton, col, row);
    if (row == numberOfLettersPerRow - 1)
    {
        row = 0;
        col++;
    } else {
        row++;
    }
    ui->lettersFrame->setLayout(lettersLayout);
    myButton->show();
}
Main CPP File :

Code:
#include <QtGui/QApplication>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;

#if defined(Q_WS_S60)
    w.showMaximized();
#else
    w.show();
#endif
    return a.exec();
}
__________________
| Developer of Horizontal-Call - Call your contacts, fast! |
| Reverse SSH - access your N900 from anywhere, anytime |
| Using Samsung Galaxy S GT-i9000 and Nokia N900 |
| DonateMe - If you feel I helped you in a very good way, feel free to donate |
 
Posts: 726 | Thanked: 345 times | Joined on Apr 2010 @ Sweden
#9
The compiler is your friend. Whatever your IDE reports, the compiler is the one that has to try to use your code. So, compile outside of your IDE and look at the error messages. Then go back to your IDE and fix it.

Most likely, though, is that the path used for includes does not contain the directory where the header file for QContactManager is.
 
eitama's Avatar
Posts: 702 | Thanked: 334 times | Joined on Feb 2010 @ Israel.
#10
Originally Posted by Joorin View Post
The compiler is your friend. Whatever your IDE reports, the compiler is the one that has to try to use your code. So, compile outside of your IDE and look at the error messages. Then go back to your IDE and fix it.

Most likely, though, is that the path used for includes does not contain the directory where the header file for QContactManager is.
I am using QTCreator, and it's using qmake I think, I don't know much abount compiling from command line as any other programming I have done was with visual studio (spoiled).
I can build inside QTCreator, and I have to compile output.

How do I check if it is path problems, and fix it?
__________________
| Developer of Horizontal-Call - Call your contacts, fast! |
| Reverse SSH - access your N900 from anywhere, anytime |
| Using Samsung Galaxy S GT-i9000 and Nokia N900 |
| DonateMe - If you feel I helped you in a very good way, feel free to donate |
 
Reply


 
Forum Jump


All times are GMT. The time now is 03:01.