The one thing still missing is a clean way of handling the exception. At this time the libQtCassandra library generate runtime_error and logic_error when you missuse a function. It also captures some Thrift exception in a few cases (although we try to avoid doing so, the connect() is the main one that we capture so you can attempt to connect and instead of throwing you get a return value of false when the connect failed.) But... at this time, if you get a Cassandra Thrift exception, you cannot do anything with it unless you include the Cassandra Thrift header files (otherwise you don't get the declaration of these exceptions.) Thus, we should overload all the exceptions and have try/catch around all the calls to the Cassandra Thrift interface and convert those exception in a libQtCassandra exception.
In regard to QObject's, we want to make use of the QObject name field to save smaller, QString names in objects. That way you could look for an object in memory with the find<>() algorithm.
The QObject is capable of managing parent/children. We want to make use of that capability for the cluster's contexts, the context's tables, the table's rows, the row's cells. That way the data is managed 100% like a Qt tree which would allow some algorithms to work on the tree without having to know anything of the libQtCassandra library.