[kde-edu]: Problem with QVariant on Rocs project (help request)

Andreas Ramm psychobrain at gmx.net
Wed Aug 13 21:33:27 CEST 2008


Try using item->data(0, FileArea::ScriptRole)).value<KTextEditor::Document*>() 
to access your data and item->data(0, 
FileArea::ScriptRole)).canConvert<KTextEditor::Document*>() to check if you 
actually have that type inside QVariant. Note the template syntax in both of 
those methods. Other helpful methods when dealing with QVariant are type() 
and typeName() which help you finding out what a QVariant contains.

Andreas

On Thu, 14 Aug 2008 02:52:48 am Tomaz Canabrava wrote:
> I'v spend all morning working on Rocs trying to implement a multi-document
> panel interface,
> almost everything is good, but this little piece of code here is somewhat
> broken,
> my head hurts, anybody can show some light on this, pretty please, with
> sugar on top?
>
> void FileArea::createNewScript(){
>    KTextEditor::Editor *e = _mainWindow->editor();
>    KTextEditor::Document* d = e -> createDocument(0);
>    d->setMode("JavaScript");
>    addScript(d->documentName(), d);
> }
>
> void FileArea::addScript(const QString& name, KTextEditor::Document* data){
>    QTreeWidgetItem *scriptItem = new QTreeWidgetItem(_scriptFolder);
>    scriptItem->setIcon(0, KIcon("file-new"));
>    scriptItem->setText(0, name);
>    scriptItem->setData(0, ScriptRole, data);
>   _mainWindow->changeActive(scriptItem);
> }
>
> void MainWindow::changeActiveScript(QTreeWidgetItem *item){
>   KTextEditor::Document *d = item->data(0, FileArea::ScriptRole));
>   _scriptingArea->setDocument( d );
>   guiFactory()->addClient(_scriptingArea->view());
> }
>
> ERROR:
>
> cannot convert 'QVariant' to 'KTextEditor::Document*' in initialization
> the line   KTextEditor::Document *d = item->data(0,
> FileArea::ScriptRole)); gives me a QVariant,
> I'v tried to qobject_cast<KTextEditor*>(item->data(0,
> FileArea::ScriptRole)); but also without luck.
>
> Anybody can give-me some light? i'm stuck here almost all morning.




More information about the kde-edu mailing list