[DQml] Added support for QModelIndex

This commit is contained in:
Filippo Cucchetto 2015-04-25 19:00:02 +02:00
parent 964ef811c6
commit 0b284798bc
4 changed files with 85 additions and 0 deletions

View File

@ -11,5 +11,6 @@ add_library(${PROJECT_NAME} STATIC
chararray.d
qguiapplication.d
qapplication.d
qmodelindex.d
)
target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

View File

@ -87,4 +87,15 @@ extern(C)
immutable(char)* notifySignal);
void dos_qobject_delete(void*);
// QModelIndex
void dos_qmodelindex_create(ref void* index);
void dos_qmodelindex_delete(void* index);
void dos_qmodelindex_row(void*, ref int result);
void dos_qmodelindex_column(void*, ref int result);
void dos_qmodelindex_isValid(void* index, ref bool result);
void dos_qmodelindex_data(void* index, int role, void* variant);
void dos_qmodelindex_parent(void* index, void* parent);
void dos_qmodelindex_child(void* index, int r, int c, void* child);
void dos_qmodelindex_sibling(void* index, int r, int c, void* sibling);
}

View File

@ -6,3 +6,4 @@ public import qobject;
public import qqmlapplicationengine;
public import qquickview;
public import qmetatype;
public import qmodelindex;

72
D/DQml/qmodelindex.d Normal file
View File

@ -0,0 +1,72 @@
import dothersideinterface;
import qvariant;
class QModelIndex
{
this()
{
dos_qmodelindex_create(this.ptr);
}
~this()
{
dos_qmodelindex_delete(this.ptr);
ptr = null;
}
public void* internalPtr()
{
return this.ptr;
}
public int row()
{
int result = -1;
dos_qmodelindex_row(this.ptr, result);
return result;
}
public int column()
{
int result = -1;
dos_qmodelindex_column(this.ptr, result);
return result;
}
public bool isValid()
{
bool result = false;
dos_qmodelindex_isValid(this.ptr, result);
return result;
}
public QVariant data(int role)
{
auto result = new QVariant();
dos_qmodelindex_data(this.ptr, role, result.rawData());
return result;
}
public QModelIndex parent()
{
auto result = new QModelIndex();
dos_qmodelindex_parent(this.ptr, result.ptr);
return result;
}
public QModelIndex child(int row, int column)
{
auto result = new QModelIndex();
dos_qmodelindex_child(this.ptr, row, column, result.ptr);
return result;
}
public QModelIndex sibling(int row, int column)
{
auto result = new QModelIndex();
dos_qmodelindex_sibling(this.ptr, row, column, result.ptr);
return result;
}
private void* ptr;
}