TARGET_LINK_LIBRARIES(mussagl
mussa_py
${QT_LIBRARIES}
- mussaqui_py
+#mussaqui_py
${BOOST_PYTHON_LIBRARY}
${PYTHON_LIBRARIES}
${PYTHON_LINK_LIBRARIES})
FIND_PACKAGE(OpenGL)
FIND_PACKAGE(PythonLibs)
FIND_PACKAGE(PythonInterp)
-SET(QT_DONT_USE_QTGUI 1)
+# SET(QT_DONT_USE_QTGUI 1)
FIND_PACKAGE(Qt4)
INCLUDE( ${QT_USE_FILE} )
glsequence.cpp
module.cpp
mussa.cpp
- # MussaWindow.cpp
nway_paths.cpp
sequence.cpp
)
SET(QUI_SOURCES
module_qui.cpp
- MussaWindow.cpp
+ qt.cpp
+ sequence.cpp
+ glsequence.cpp
+ annotation_colors.cpp
+ sequencebrowserwidget.cpp
)
SET(MUSSA_LIBRARIES
mussa_core
${PYTHON_LIBRARIES}
)
# configure static gui python library
- ADD_LIBRARY(mussaqui_py STATIC ${QUI_SOURCES})
- SET_TARGET_PROPERTIES(mussa_py PROPERTIES
- COMPILE_FLAGS "${PY_CFLAGS}"
- LINK_FLAGS "${PY_LDFLAGS}")
+ #ADD_LIBRARY(mussaqui_py STATIC ${QUI_SOURCES})
+ # SET_TARGET_PROPERTIES(mussa_py PROPERTIES
+ # COMPILE_FLAGS "${PY_CFLAGS}"
+ # LINK_FLAGS "${PY_LDFLAGS}")
# configure gui (shared) python library
- #ADD_LIBRARY(mussaqui MODULE ${QUI_SOURCES})
- #SET_TARGET_PROPERTIES(mussaqui PROPERTIES
- # PREFIX ""
- # COMPILE_FLAGS "${PY_CFLAGS}"
- # LINK_FLAGS "${PY_LDFLAGS}")
- #TARGET_LINK_LIBRARIES(mussaqui
- # mussa_qui
- # ${MUSSA_LIBRARIES}
- # ${PYTHON_LIBRARIES}
- # optimized ${QT_QTGUI_LIBRARY}
- # debug ${QT_QTGUI_LIBRARY_DEBUG}
- # optimized ${QT_QTOPENGL_LIBRARY}
- # debug ${QT_QTOPENGL_LIBRARY_DEBUG}
- # )
+ ADD_LIBRARY(mussaqui MODULE ${QUI_SOURCES})
+ SET_TARGET_PROPERTIES(mussaqui PROPERTIES
+ PREFIX ""
+ COMPILE_FLAGS "${PY_CFLAGS}"
+ LINK_FLAGS "${PY_LDFLAGS}")
+ TARGET_LINK_LIBRARIES(mussaqui
+ mussa_qui
+ ${MUSSA_LIBRARIES}
+ ${PYTHON_LIBRARIES}
+ optimized ${QT_QTGUI_LIBRARY}
+ debug ${QT_QTGUI_LIBRARY_DEBUG}
+ optimized ${QT_QTOPENGL_LIBRARY}
+ debug ${QT_QTOPENGL_LIBRARY_DEBUG}
+ )
SET_SOURCE_FILES_PROPERTIES(
${SOURCES}
export_glsequence();
export_mussa();
export_nway_paths();
- //export_mussa_window();
}
#include <boost/python.hpp>
using namespace boost::python;
-void export_gui_proxy();
+void export_sequence();
+void export_glsequence();
+void export_annotation_colors();
+void export_qt();
+void export_sequencebrowserwidget();
BOOST_PYTHON_MODULE(mussaqui)
{
- export_gui_proxy();
+ export_sequence();
+ export_glsequence();
+ export_annotation_colors();
+ export_qt();
+ export_sequencebrowserwidget();
}
--- /dev/null
+#include <boost/python.hpp>
+#include <boost/utility.hpp>
+
+namespace py = boost::python;
+
+
+#include "QtGui/QWidget"
+#include "QtGui/QApplication"
+
+
+static char *cstub[] = { "stub" };
+char **stub = cstub;
+int one = 1;
+
+struct QApplicationStub : public QApplication {
+ QApplicationStub() : QApplication(one, (char **)stub) {
+ }
+};
+
+void export_qt()
+{
+
+ py::class_<QWidget, boost::noncopyable>("QWidget", py::init<QWidget *, Qt::WindowFlags>())
+ ;
+
+ py::class_<QApplicationStub, boost::noncopyable>(
+ "QApplication",
+ py::init<>()
+ )
+ .def("execloop", &QApplication::exec)
+ .staticmethod("execloop")
+ ;
+}
--- /dev/null
+#include <boost/python.hpp>
+namespace py = boost::python;
+#include <vector>
+
+#include "alg/Sequence.hpp"
+#include "alg/glsequence.cpp"
+#include "alg/glseqbrowser.cpp"
+#include "qui/seqbrowser/SequenceBrowserWidget.hpp"
+
+#include "stl_container_adapter.hpp"
+
+void export_sequencebrowserwidget()
+{
+
+ void (SequenceBrowserWidget::*setSequences_g)(
+ std::vector<boost::shared_ptr<GlSequence> > &) = &SequenceBrowserWidget::setSequences;
+
+ py::class_<SequenceBrowserWidget>("SequenceBrowserWidget",
+ py::init<>())
+ // SIGNALS
+ .def("copySelectedSequenceAsFasta",
+ &SequenceBrowserWidget::copySelectedSequenceAsFasta)
+ .def("setZoom", &SequenceBrowserWidget::setZoom)
+ .def("zoomOut", &SequenceBrowserWidget::zoomOut)
+ .def("zoomToSequence", &SequenceBrowserWidget::zoomToSequence)
+ .def("updatePosition", &SequenceBrowserWidget::updatePosition)
+ .def("promptSaveBrowserPixmap",
+ &SequenceBrowserWidget::promptSaveBrowserPixmap)
+ .def("update", &SequenceBrowserWidget::update)
+ // Member functions
+ //.def("browser", &SequenceBrowserWidget::browser)
+ //.def("getPopupMenu", &SequenceBrowserWidget::getPopupMenu)
+ //.def("getCopySelectedSequenceAsFastaAction",
+ // &SequenceBrowserWidget::getCopySelectedSequenceAsFastaAction)
+ //.def("getCopySelectedSequenceAsStringAction",
+ // &SequenceBrowserWidget::getCopySelectedSequenceAsStringAction)
+ //.def("getEditSequencePropertiesAction",
+ // &SequenceBrowserWidget::getEditSequencePropertiesAction)
+ //.def("copySelectedTracksAsSeqLocation",
+ // &SequenceBrowserWidget::copySelectedTracksAsSeqLocation)
+ .def("zoom", &SequenceBrowserWidget::zoom)
+ .def("clear", &SequenceBrowserWidget::clear)
+ .def("setSequences", setSequences_g)
+ //.def("sequences", &SequenceBrowserWidget::sequences)
+ .def("clear_links", &SequenceBrowserWidget::clear_links)
+ .def("link", &SequenceBrowserWidget::link)
+ .def("selectedPaths", &SequenceBrowserWidget::selectedPaths)
+ .def("centerOnPath", &SequenceBrowserWidget::centerOnPath)
+
+ .def("show", &SequenceBrowserWidget::show)
+ ;
+}
mussa_py
mussa_core
${QT_QTCORE_LIBRARY}
- mussaqui_py
${OPENGL_gl_LIBRARY}
${BOOST_PROGRAM_OPTIONS_LIBRARY}
${BOOST_FILESYSTEM_LIBRARY}
#ifdef USE_PYTHON
#include "py/python.hpp"
extern "C" void initmussa();
-extern "C" void initmussaqui();
+//extern "C" void initmussaqui();
#endif
#include "qui/MussaWindow.hpp"
return 1;
}
py->add_module("mussa", &initmussa);
- py->add_module("mussaqui", &initmussaqui);
+ //py->add_module("mussaqui", &initmussaqui);
// quit when the interpreter exits
QObject::connect(interp, SIGNAL(finished()),
&app, SLOT(quit()));
#include <math.h>
using namespace std;
+SequenceBrowserWidget::SequenceBrowserWidget(
+ QWidget *parent)
+ : QScrollArea(parent),
+ left_sidebar(0),
+ scrollable_browser(0),
+ right_sidebar(0),
+ layout(0),
+ layout_container(0)
+{
+ boost::shared_ptr<QDir> empty_dir(new QDir);
+ default_dir = empty_dir;
+
+ init();
+}
+
SequenceBrowserWidget::SequenceBrowserWidget(
boost::shared_ptr<QDir> default_dir_,
QWidget *parent
{
default_dir = default_dir_;
+ init();
+}
+
+void SequenceBrowserWidget::init()
+{
layout_container = new QWidget(this);
layout = new QHBoxLayout(layout_container);
left_sidebar = new SequenceBrowserSidebar(layout_container);
this, SIGNAL(mouseWheelZoom(double)));
}
+
+SequenceBrowserWidget::SequenceBrowserWidget(const SequenceBrowserWidget &o)
+ : QScrollArea(o.window()),
+ left_sidebar(o.left_sidebar),
+ scrollable_browser(o.scrollable_browser),
+ right_sidebar(o.right_sidebar),
+ layout(o.layout),
+ layout_container(o.layout_container)
+{
+}
+
QSize SequenceBrowserWidget::sizeHint() const
{
// don't trust the layouts size computation
Q_OBJECT
public:
+ SequenceBrowserWidget(QWidget *parent=0);
+ SequenceBrowserWidget(const SequenceBrowserWidget &);
SequenceBrowserWidget(boost::shared_ptr<QDir>, QWidget *parent=0);
//! return our wrapped browser, so we can test it.
/*! I need to save them so i can free them to avoid a memory leak
*/
std::vector<GlSequenceRef > converted_sequences;
+
+ //! shared code for constructors
+ void init();
};
#endif