diff --git a/autotests/pythontest.py b/autotests/pythontest.py new file mode 100644 index 0000000..b09f366 --- /dev/null +++ b/autotests/pythontest.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- + +from __future__ import print_function + +import sys + +sys.path.append(sys.argv[1]) + +from PyQt5 import QtCore +from PyQt5 import QtWidgets + +from PyKF5 import KItemViews + +def main(): + app = QtWidgets.QApplication(sys.argv) + + model = QtCore.QStringListModel(("1", "2", "3")) + + proxy = QtCore.QSortFilterProxyModel() + proxy.setSourceModel(model) + + assert(proxy.rowCount() == 3) + + filterLine = KItemViews.KFilterProxySearchLine() + filterLine.setProxy(proxy) + + filterLine.setText("1"); + + print(proxy.rowCount(), proxy.filterRegExp()) + + assert(proxy.rowCount() == 1) + +if __name__ == '__main__': + sys.exit(main()) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ad116f5..0f1eb00 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,57 +1,80 @@ ecm_create_qm_loader(kitemviews_QM_LOADER kitemviews5_qt) set(kitemviews_SRCS kcategorizedsortfilterproxymodel.cpp kcategorizedview.cpp kcategorydrawer.cpp kextendableitemdelegate.cpp kfilterproxysearchline.cpp klistwidgetsearchline.cpp ktreewidgetsearchline.cpp ktreewidgetsearchlinewidget.cpp kwidgetitemdelegate.cpp kwidgetitemdelegatepool.cpp ${kitemviews_QM_LOADER} ) add_library(KF5ItemViews ${kitemviews_SRCS}) generate_export_header(KF5ItemViews BASE_NAME KItemViews) add_library(KF5::ItemViews ALIAS KF5ItemViews) target_include_directories(KF5ItemViews INTERFACE "$") target_link_libraries(KF5ItemViews PUBLIC Qt5::Widgets) set_target_properties(KF5ItemViews PROPERTIES VERSION ${KITEMVIEWS_VERSION_STRING} SOVERSION ${KITEMVIEWS_SOVERSION} EXPORT_NAME ItemViews ) ecm_generate_headers(KItemViews_HEADERS HEADER_NAMES KCategorizedSortFilterProxyModel KCategorizedView KCategoryDrawer KExtendableItemDelegate KFilterProxySearchLine KListWidgetSearchLine KTreeWidgetSearchLine KTreeWidgetSearchLineWidget KWidgetItemDelegate REQUIRED_HEADERS KItemViews_HEADERS ) +find_package(PythonModuleGeneration) + +if (PythonModuleGeneration_FOUND) + ecm_generate_python_binding( + TARGET KF5::ItemViews + PYTHONNAMESPACE PyKF5 + MODULENAME KItemViews + INSTALL_DIR_SUFFIX ${KDE_INSTALL_PYTHONBINDINGSDIR} + SIP_DEPENDS + QtWidgets/QtWidgetsmod.sip + HEADERS + kcategorizedsortfilterproxymodel.h + kcategorizedview.h + kcategorydrawer.h + kextendableitemdelegate.h + kfilterproxysearchline.h + klistwidgetsearchline.h + ktreewidgetsearchline.h + ktreewidgetsearchlinewidget.h + kwidgetitemdelegate.h + ) +endif() + install(TARGETS KF5ItemViews EXPORT KF5ItemViewsTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kitemviews_export.h ${KItemViews_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KItemViews COMPONENT Devel ) include(ECMGeneratePriFile) ecm_generate_pri_file(BASE_NAME KItemViews LIB_NAME KF5ItemViews DEPS "widgets" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/KItemViews) install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})