From 96bad014153a23f3df90e5bffa64746e56bf0505 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Sat, 29 Nov 2008 22:32:58 +0000 Subject: [PATCH] added ResourcesTreeView, a QTreeView implementation for ResourcesTreeModel git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1859 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 22 ++++++++++ include/resources_tree_view.h | 52 +++++++++++++++++++++++ src/gui/resources_tree_view.cpp | 73 +++++++++++++++++++++++++++++++++ 3 files changed, 147 insertions(+) create mode 100644 include/resources_tree_view.h create mode 100644 src/gui/resources_tree_view.cpp diff --git a/ChangeLog b/ChangeLog index 91b432443..5052a4a90 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,26 @@ +2008-11-29 Tobias Doerffel + + * include/resources_tree_view.h: + * src/gui/resources_tree_view.cpp: + added ResourcesTreeView, a QTreeView implementation for + ResourcesTreeModel + + * include/resources_tree_model.h: + * src/core/resources_tree_model.cpp: + added ResourcesTreeModel, a QAbstractModelItem implementation for + ResourcesDB + + * include/engine.h: + * src/core/engine.cpp: + create a global ResourcesDB instance + + * include/resources_db.h: + * src/core/resources_db.cpp: + introduced ResourcesDB class for easily managing all kind of resources + in the future + 2008-11-28 Andrew Kelley + * src/gui/piano_roll.cpp: * src/core/note.cpp: copy/paste selection support diff --git a/include/resources_tree_view.h b/include/resources_tree_view.h new file mode 100644 index 000000000..a7569cb74 --- /dev/null +++ b/include/resources_tree_view.h @@ -0,0 +1,52 @@ +/* + * resources_tree_view.h - view for ResourcesTreeModel + * + * Copyright (c) 2008 Tobias Doerffel + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + +#ifndef _RESOURCES_TREE_VIEW_H +#define _RESOURCES_TREE_VIEW_H + +#include + + +class ResourcesTreeModel; + +class ResourcesTreeView : public QTreeView +{ + Q_OBJECT +public: + ResourcesTreeView( ResourcesTreeModel * _tm, QWidget * _parent ); + + +public slots: + void setFilter( const QString & _s ); + void updateFilter( void ); + +private: + ResourcesTreeModel * m_tm; + + QString m_lastFilter; + +} ; + + +#endif diff --git a/src/gui/resources_tree_view.cpp b/src/gui/resources_tree_view.cpp new file mode 100644 index 000000000..d3bfe23f4 --- /dev/null +++ b/src/gui/resources_tree_view.cpp @@ -0,0 +1,73 @@ +/* + * resources_tree_view.cpp - implementation of ResourcesTreeView + * + * Copyright (c) 2008 Tobias Doerffel + * + * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program (see COPYING); if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301 USA. + * + */ + + +#include "resources_tree_view.h" +#include "resources_tree_model.h" + + +ResourcesTreeView::ResourcesTreeView( ResourcesTreeModel * _tm, + QWidget * _parent ) : + QTreeView( _parent ), + m_tm( _tm ) +{ + setHeaderHidden( true ); + setModel( m_tm ); + connect( m_tm, SIGNAL( itemsChanged() ), + this, SLOT( updateFilter() ) ); +} + + + + +void ResourcesTreeView::setFilter( const QString & _s ) +{ + setUpdatesEnabled( false ); + if( _s.isEmpty() ) + { + collapseAll(); + m_tm->setFilter( _s ); + } + else + { + m_tm->setFilter( _s ); + expandToDepth( _s.size() ); + } + setUpdatesEnabled( true ); + + m_lastFilter = _s; +} + + + + +void ResourcesTreeView::updateFilter( void ) +{ + setFilter( m_lastFilter ); +} + + + + +#include "moc_resources_tree_view.cxx"