author | zecke <zecke> | 2004-05-28 22:49:15 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-05-28 22:49:15 (UTC) |
commit | 08998f34ec77062224dc0783be78d9e6e3bf7910 (patch) (unidiff) | |
tree | ef7855f9ead12b408e9b4b3ca7f6f8f58466016f | |
parent | e15f3bb9f0a652076050ddcfb0c31a16ae845373 (diff) | |
download | opie-08998f34ec77062224dc0783be78d9e6e3bf7910.zip opie-08998f34ec77062224dc0783be78d9e6e3bf7910.tar.gz opie-08998f34ec77062224dc0783be78d9e6e3bf7910.tar.bz2 |
Make harlekin happy. AkA uncomitted code
-rw-r--r-- | libopie2/opiecore/opluginloader.cpp | 18 | ||||
-rw-r--r-- | libopie2/opiecore/opluginloader.h | 1 |
2 files changed, 16 insertions, 3 deletions
diff --git a/libopie2/opiecore/opluginloader.cpp b/libopie2/opiecore/opluginloader.cpp index 2aca382..87e24d4 100644 --- a/libopie2/opiecore/opluginloader.cpp +++ b/libopie2/opiecore/opluginloader.cpp | |||
@@ -544,49 +544,48 @@ OPluginItem::List OGenericPluginLoader::plugins( const QString& _dir, bool sorte | |||
544 | */ | 544 | */ |
545 | QMap<QString, int> positionMap; | 545 | QMap<QString, int> positionMap; |
546 | QMap<QString, int> excludedMap; | 546 | QMap<QString, int> excludedMap; |
547 | 547 | ||
548 | 548 | ||
549 | OConfig cfg( m_dir+"odpplugins" ); | 549 | OConfig cfg( m_dir+"odpplugins" ); |
550 | cfg.setGroup( _dir ); | 550 | cfg.setGroup( _dir ); |
551 | 551 | ||
552 | 552 | ||
553 | QStringList excludes = cfg.readListEntry( "Excluded", ',' ); | 553 | QStringList excludes = cfg.readListEntry( "Excluded", ',' ); |
554 | for ( QStringList::Iterator it = excludes.begin(); it != excludes.end(); ++it ) | 554 | for ( QStringList::Iterator it = excludes.begin(); it != excludes.end(); ++it ) |
555 | excludedMap.insert( *it, -2 ); | 555 | excludedMap.insert( *it, -2 ); |
556 | 556 | ||
557 | if ( m_isSorted ) { | 557 | if ( m_isSorted ) { |
558 | QStringList pos = cfg.readListEntry( "Positions", '.' ); | 558 | QStringList pos = cfg.readListEntry( "Positions", '.' ); |
559 | QStringList::Iterator it = pos.begin(); | 559 | QStringList::Iterator it = pos.begin(); |
560 | while ( it != pos.end() ) | 560 | while ( it != pos.end() ) |
561 | positionMap.insert( *it++, (*it++).toInt() ); | 561 | positionMap.insert( *it++, (*it++).toInt() ); |
562 | } | 562 | } |
563 | 563 | ||
564 | 564 | ||
565 | 565 | ||
566 | 566 | ||
567 | QStringList list = dir.entryList(); | 567 | QStringList list = dir.entryList(); |
568 | QStringList::Iterator it; | ||
569 | for (QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { | 568 | for (QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { |
570 | QString str = unlibify( *it ); | 569 | QString str = unlibify( *it ); |
571 | OPluginItem item( str, _dir + "/" + *it ); | 570 | OPluginItem item( str, _dir + "/" + *it ); |
572 | 571 | ||
573 | bool ex = excludedMap.contains( str ); | 572 | bool ex = excludedMap.contains( str ); |
574 | /* | 573 | /* |
575 | * if disabled but we should show all mark it as disabled | 574 | * if disabled but we should show all mark it as disabled |
576 | * else continue because we don't want to add the item | 575 | * else continue because we don't want to add the item |
577 | * else if sorted we assign the right position | 576 | * else if sorted we assign the right position |
578 | */ | 577 | */ |
579 | if ( ex && !disabled) | 578 | if ( ex && !disabled) |
580 | item.setEnabled( false ); | 579 | item.setEnabled( false ); |
581 | else if ( ex && disabled ) | 580 | else if ( ex && disabled ) |
582 | continue; | 581 | continue; |
583 | else if ( sorted ) | 582 | else if ( sorted ) |
584 | item.setPosition( positionMap[str] ); | 583 | item.setPosition( positionMap[str] ); |
585 | 584 | ||
586 | lst.append( item ); | 585 | lst.append( item ); |
587 | } | 586 | } |
588 | 587 | ||
589 | return lst; | 588 | return lst; |
590 | } | 589 | } |
591 | 590 | ||
592 | /** | 591 | /** |
@@ -651,49 +650,49 @@ void OGenericPluginLoader::installTranslators(const QString& type) { | |||
651 | * @see OGenericPluginLoader | 650 | * @see OGenericPluginLoader |
652 | */ | 651 | */ |
653 | OPluginLoader::OPluginLoader( const QString& name, bool sorted ) | 652 | OPluginLoader::OPluginLoader( const QString& name, bool sorted ) |
654 | : OGenericPluginLoader( name, sorted ) | 653 | : OGenericPluginLoader( name, sorted ) |
655 | { | 654 | { |
656 | } | 655 | } |
657 | 656 | ||
658 | /** | 657 | /** |
659 | * d'tor | 658 | * d'tor |
660 | * @see OGenericPluginLoader::~OGenericPluginLoader | 659 | * @see OGenericPluginLoader::~OGenericPluginLoader |
661 | */ | 660 | */ |
662 | OPluginLoader::~OPluginLoader() { | 661 | OPluginLoader::~OPluginLoader() { |
663 | } | 662 | } |
664 | 663 | ||
665 | /** | 664 | /** |
666 | * \brief C'Tor using a OGenericPluginLoader | 665 | * \brief C'Tor using a OGenericPluginLoader |
667 | * The C'tor. Pass your OGenericPluginLoader to manage | 666 | * The C'tor. Pass your OGenericPluginLoader to manage |
668 | * OGenericPluginLoader::allAvailable plugins. | 667 | * OGenericPluginLoader::allAvailable plugins. |
669 | * | 668 | * |
670 | * | 669 | * |
671 | * @param loader A Pointer to your OGenericPluginLoader | 670 | * @param loader A Pointer to your OGenericPluginLoader |
672 | * @param name The name | 671 | * @param name The name |
673 | */ | 672 | */ |
674 | OPluginManager::OPluginManager( OGenericPluginLoader* loader) | 673 | OPluginManager::OPluginManager( OGenericPluginLoader* loader) |
675 | : m_loader( loader ) | 674 | : m_loader( loader ), m_isSorted( false ) |
676 | { | 675 | { |
677 | } | 676 | } |
678 | 677 | ||
679 | /** | 678 | /** |
680 | * \brief Overloaded c'tor using a List of Plugins and a type name | 679 | * \brief Overloaded c'tor using a List of Plugins and a type name |
681 | * Overloaded Constructor to work with a 'Type' of plugins | 680 | * Overloaded Constructor to work with a 'Type' of plugins |
682 | * and a correspending list of those. In this case calling load | 681 | * and a correspending list of those. In this case calling load |
683 | * is a no operation. | 682 | * is a no operation. |
684 | * | 683 | * |
685 | * @param name The name of your plugin ('today','inputmethods','applets') | 684 | * @param name The name of your plugin ('today','inputmethods','applets') |
686 | * @param lst A List with plugins of your type to manage | 685 | * @param lst A List with plugins of your type to manage |
687 | * @param isSorted If the List should be treated sorted | 686 | * @param isSorted If the List should be treated sorted |
688 | */ | 687 | */ |
689 | OPluginManager::OPluginManager( const QString& name, const OPluginItem::List& lst, bool isSorted) | 688 | OPluginManager::OPluginManager( const QString& name, const OPluginItem::List& lst, bool isSorted) |
690 | : m_loader( 0l ), m_cfgName( name ), m_plugins( lst ), m_isSorted( isSorted ) | 689 | : m_loader( 0l ), m_cfgName( name ), m_plugins( lst ), m_isSorted( isSorted ) |
691 | { | 690 | { |
692 | } | 691 | } |
693 | 692 | ||
694 | /** | 693 | /** |
695 | * \brief A simple d'tor | 694 | * \brief A simple d'tor |
696 | */ | 695 | */ |
697 | OPluginManager::~OPluginManager() { | 696 | OPluginManager::~OPluginManager() { |
698 | } | 697 | } |
699 | 698 | ||
@@ -850,29 +849,42 @@ void OPluginManager::save() { | |||
850 | cfg.writeEntry("Excluded", it.data(), ',' ); | 849 | cfg.writeEntry("Excluded", it.data(), ',' ); |
851 | } | 850 | } |
852 | 851 | ||
853 | /* safe positions we could also see if positions.contains(path) and remove/write in the above loop | 852 | /* safe positions we could also see if positions.contains(path) and remove/write in the above loop |
854 | * ### Write a Test Suite that can profile these runs... | 853 | * ### Write a Test Suite that can profile these runs... |
855 | */ | 854 | */ |
856 | for ( QMap<QString, QStringList>::Iterator it = positions.begin(); it != positions.end(); ++it ) { | 855 | for ( QMap<QString, QStringList>::Iterator it = positions.begin(); it != positions.end(); ++it ) { |
857 | OConfigGroupSaver saver( &cfg, it.key() ); | 856 | OConfigGroupSaver saver( &cfg, it.key() ); |
858 | cfg.writeEntry("Positions", it.data(), '.' ); | 857 | cfg.writeEntry("Positions", it.data(), '.' ); |
859 | } | 858 | } |
860 | } | 859 | } |
861 | 860 | ||
862 | /** | 861 | /** |
863 | * @internal | 862 | * @internal |
864 | */ | 863 | */ |
865 | QString OPluginManager::configName()const { | 864 | QString OPluginManager::configName()const { |
866 | QString str = m_loader ? m_loader->name() : m_cfgName; | 865 | QString str = m_loader ? m_loader->name() : m_cfgName; |
867 | return str + "odpplugins"; | 866 | return str + "odpplugins"; |
868 | } | 867 | } |
869 | 868 | ||
870 | /** | 869 | /** |
871 | * @internal.. replace in m_plugins by path... this is linear search O(n/2) | 870 | * @internal.. replace in m_plugins by path... this is linear search O(n/2) |
872 | */ | 871 | */ |
873 | void OPluginManager::replace( const OPluginItem& item ) { | 872 | void OPluginManager::replace( const OPluginItem& item ) { |
874 | // ### fixme | 873 | OPluginItem _item; |
874 | |||
875 | /* for all plugins */ | ||
876 | for ( OPluginItem::List::Iterator it=m_plugins.begin();it != m_plugins.end(); ++it ) { | ||
877 | _item = *it; | ||
878 | /* if path and name are the same we will remove, readd and return */ | ||
879 | if ( _item.path() == item.path() && | ||
880 | _item.name() == item.name() ) { | ||
881 | it = m_plugins.remove( it ); | ||
882 | m_plugins.append( item ); | ||
883 | return; | ||
884 | } | ||
885 | |||
886 | } | ||
875 | } | 887 | } |
876 | 888 | ||
877 | } | 889 | } |
878 | } | 890 | } |
diff --git a/libopie2/opiecore/opluginloader.h b/libopie2/opiecore/opluginloader.h index 2f9ec2a..740551c 100644 --- a/libopie2/opiecore/opluginloader.h +++ b/libopie2/opiecore/opluginloader.h | |||
@@ -136,48 +136,49 @@ private: | |||
136 | * @since 1.2 | 136 | * @since 1.2 |
137 | */ | 137 | */ |
138 | class OPluginLoader : public OGenericPluginLoader { | 138 | class OPluginLoader : public OGenericPluginLoader { |
139 | public: | 139 | public: |
140 | OPluginLoader( const QString& name, bool sorted = false ); | 140 | OPluginLoader( const QString& name, bool sorted = false ); |
141 | virtual ~OPluginLoader(); | 141 | virtual ~OPluginLoader(); |
142 | 142 | ||
143 | template<class IFace> | 143 | template<class IFace> |
144 | IFace* load( const OPluginItem& item, const QUuid& ); | 144 | IFace* load( const OPluginItem& item, const QUuid& ); |
145 | }; | 145 | }; |
146 | 146 | ||
147 | /** | 147 | /** |
148 | * \brief A class to manage order and activation of plugins | 148 | * \brief A class to manage order and activation of plugins |
149 | * | 149 | * |
150 | * Manage order and activation. This is used by the Opie::Ui::OPluginConfig | 150 | * Manage order and activation. This is used by the Opie::Ui::OPluginConfig |
151 | * This class controls the activation and order of plugins depending | 151 | * This class controls the activation and order of plugins depending |
152 | * on the OPluginLoader you supply. | 152 | * on the OPluginLoader you supply. |
153 | * You must call load() and save after construnction an instance | 153 | * You must call load() and save after construnction an instance |
154 | * | 154 | * |
155 | * @see Opie::Ui::OPluginConfig | 155 | * @see Opie::Ui::OPluginConfig |
156 | * | 156 | * |
157 | */ | 157 | */ |
158 | class OPluginManager { | 158 | class OPluginManager { |
159 | public: | 159 | public: |
160 | typedef QValueList<OPluginManager*> List; | ||
160 | OPluginManager( OGenericPluginLoader* ); | 161 | OPluginManager( OGenericPluginLoader* ); |
161 | OPluginManager( const QString& name, const OPluginItem::List&, bool isSorted = false ); | 162 | OPluginManager( const QString& name, const OPluginItem::List&, bool isSorted = false ); |
162 | virtual ~OPluginManager(); | 163 | virtual ~OPluginManager(); |
163 | 164 | ||
164 | OPluginItem crashedPlugin()const; | 165 | OPluginItem crashedPlugin()const; |
165 | 166 | ||
166 | OPluginItem::List managedPlugins()const; | 167 | OPluginItem::List managedPlugins()const; |
167 | 168 | ||
168 | void setPosition( const OPluginItem& ); | 169 | void setPosition( const OPluginItem& ); |
169 | void enable( const OPluginItem& ); | 170 | void enable( const OPluginItem& ); |
170 | void disable( const OPluginItem& ); | 171 | void disable( const OPluginItem& ); |
171 | void setEnabled( const OPluginItem&, bool = true); | 172 | void setEnabled( const OPluginItem&, bool = true); |
172 | 173 | ||
173 | virtual void load(); | 174 | virtual void load(); |
174 | virtual void save(); | 175 | virtual void save(); |
175 | 176 | ||
176 | protected: | 177 | protected: |
177 | QString configName()const; | 178 | QString configName()const; |
178 | void replace( const OPluginItem& ); | 179 | void replace( const OPluginItem& ); |
179 | private: | 180 | private: |
180 | OGenericPluginLoader *m_loader; | 181 | OGenericPluginLoader *m_loader; |
181 | QString m_cfgName; | 182 | QString m_cfgName; |
182 | OPluginItem::List m_plugins; | 183 | OPluginItem::List m_plugins; |
183 | OPluginItem m_crashed; | 184 | OPluginItem m_crashed; |