author | zecke <zecke> | 2005-03-25 15:50:45 (UTC) |
---|---|---|
committer | zecke <zecke> | 2005-03-25 15:50:45 (UTC) |
commit | 5cef1f233ff323e68fd739d8d155cecddc033a69 (patch) (unidiff) | |
tree | f9599b521a72e7e9c9b63ad8931204cbfafafdd8 | |
parent | f5cdd292dfcc4c68e38e54d35af85dcf99e11ea9 (diff) | |
download | opie-5cef1f233ff323e68fd739d8d155cecddc033a69.zip opie-5cef1f233ff323e68fd739d8d155cecddc033a69.tar.gz opie-5cef1f233ff323e68fd739d8d155cecddc033a69.tar.bz2 |
Fix for #1473:
Like the OFileSelector patch show the popup on QToolButton
press and do not use setPopup()
-rw-r--r-- | noncore/graphics/opie-eye/gui/filesystem.cpp | 7 | ||||
-rw-r--r-- | noncore/graphics/opie-eye/gui/filesystem.h | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/noncore/graphics/opie-eye/gui/filesystem.cpp b/noncore/graphics/opie-eye/gui/filesystem.cpp index 6f1c64a..8efcdf7 100644 --- a/noncore/graphics/opie-eye/gui/filesystem.cpp +++ b/noncore/graphics/opie-eye/gui/filesystem.cpp | |||
@@ -5,56 +5,61 @@ | |||
5 | #include <stdlib.h> | 5 | #include <stdlib.h> |
6 | #include <qpopupmenu.h> | 6 | #include <qpopupmenu.h> |
7 | #include <qtoolbar.h> | 7 | #include <qtoolbar.h> |
8 | 8 | ||
9 | #include <qpe/resource.h> | 9 | #include <qpe/resource.h> |
10 | #include <qpe/storage.h> | 10 | #include <qpe/storage.h> |
11 | 11 | ||
12 | 12 | ||
13 | #include "filesystem.h" | 13 | #include "filesystem.h" |
14 | 14 | ||
15 | PFileSystem::PFileSystem( QToolBar* bar) | 15 | PFileSystem::PFileSystem( QToolBar* bar) |
16 | : QToolButton( bar ) | 16 | : QToolButton( bar ) |
17 | { | 17 | { |
18 | setIconSet( Resource::loadIconSet( "cardmon/pcmcia" ) ); | 18 | setIconSet( Resource::loadIconSet( "cardmon/pcmcia" ) ); |
19 | 19 | ||
20 | m_pop = new QPopupMenu( this ); | 20 | m_pop = new QPopupMenu( this ); |
21 | connect( m_pop, SIGNAL( activated( int ) ), | 21 | connect( m_pop, SIGNAL( activated( int ) ), |
22 | this, SLOT(slotSelectDir( int ) ) ); | 22 | this, SLOT(slotSelectDir( int ) ) ); |
23 | 23 | ||
24 | m_storage = new StorageInfo(); | 24 | m_storage = new StorageInfo(); |
25 | connect(m_storage, SIGNAL(disksChanged() ), | 25 | connect(m_storage, SIGNAL(disksChanged() ), |
26 | this, SLOT( changed() ) ); | 26 | this, SLOT( changed() ) ); |
27 | changed(); | 27 | changed(); |
28 | 28 | ||
29 | setPopup( m_pop ); | 29 | connect(this,SIGNAL(pressed()),SLOT(slotPopUp())); |
30 | } | 30 | } |
31 | 31 | ||
32 | PFileSystem::~PFileSystem() { | 32 | PFileSystem::~PFileSystem() { |
33 | delete m_storage; | 33 | delete m_storage; |
34 | } | 34 | } |
35 | 35 | ||
36 | 36 | ||
37 | void PFileSystem::changed() { | 37 | void PFileSystem::changed() { |
38 | m_pop->clear(); | 38 | m_pop->clear(); |
39 | m_dev.clear(); | 39 | m_dev.clear(); |
40 | 40 | ||
41 | /* home dir, too */ | 41 | /* home dir, too */ |
42 | QString f = getenv( "HOME" ); | 42 | QString f = getenv( "HOME" ); |
43 | if (!f.isEmpty()) { | 43 | if (!f.isEmpty()) { |
44 | m_dev.insert("Home directory",f); | 44 | m_dev.insert("Home directory",f); |
45 | m_pop->insertItem("Home directory"); | 45 | m_pop->insertItem("Home directory"); |
46 | } | 46 | } |
47 | 47 | ||
48 | const QList<FileSystem> &fs = m_storage->fileSystems(); | 48 | const QList<FileSystem> &fs = m_storage->fileSystems(); |
49 | QListIterator<FileSystem> it(fs ); | 49 | QListIterator<FileSystem> it(fs ); |
50 | for ( ; it.current(); ++it ) { | 50 | for ( ; it.current(); ++it ) { |
51 | const QString disk = (*it)->name(); | 51 | const QString disk = (*it)->name(); |
52 | const QString path = (*it)->path(); | 52 | const QString path = (*it)->path(); |
53 | m_dev.insert( disk, path ); | 53 | m_dev.insert( disk, path ); |
54 | m_pop->insertItem( disk ); | 54 | m_pop->insertItem( disk ); |
55 | } | 55 | } |
56 | } | 56 | } |
57 | 57 | ||
58 | void PFileSystem::slotPopUp() { | ||
59 | m_pop->exec(QCursor::pos()); | ||
60 | setDown(false); | ||
61 | } | ||
62 | |||
58 | void PFileSystem::slotSelectDir( int id ) { | 63 | void PFileSystem::slotSelectDir( int id ) { |
59 | emit changeDir( m_dev[m_pop->text(id )] ); | 64 | emit changeDir( m_dev[m_pop->text(id )] ); |
60 | } | 65 | } |
diff --git a/noncore/graphics/opie-eye/gui/filesystem.h b/noncore/graphics/opie-eye/gui/filesystem.h index a29ad87..dbd9d4a 100644 --- a/noncore/graphics/opie-eye/gui/filesystem.h +++ b/noncore/graphics/opie-eye/gui/filesystem.h | |||
@@ -1,34 +1,35 @@ | |||
1 | /* | 1 | /* |
2 | * GPLv2 zecke@handhelds.org | 2 | * GPLv2 zecke@handhelds.org |
3 | * No WArranty... | 3 | * No WArranty... |
4 | */ | 4 | */ |
5 | 5 | ||
6 | #ifndef PHUNK_FILE_SYSTEM_H | 6 | #ifndef PHUNK_FILE_SYSTEM_H |
7 | #define PHUNK_FILE_SYSTEM_H | 7 | #define PHUNK_FILE_SYSTEM_H |
8 | 8 | ||
9 | #include <qtoolbutton.h> | 9 | #include <qtoolbutton.h> |
10 | #include <qmap.h> | 10 | #include <qmap.h> |
11 | 11 | ||
12 | class QPopupMenu; | 12 | class QPopupMenu; |
13 | class StorageInfo; | 13 | class StorageInfo; |
14 | class PFileSystem : public QToolButton { | 14 | class PFileSystem : public QToolButton { |
15 | Q_OBJECT | 15 | Q_OBJECT |
16 | public: | 16 | public: |
17 | PFileSystem( QToolBar* ); | 17 | PFileSystem( QToolBar* ); |
18 | ~PFileSystem(); | 18 | ~PFileSystem(); |
19 | 19 | ||
20 | signals: | 20 | signals: |
21 | void changeDir( const QString& ); | 21 | void changeDir( const QString& ); |
22 | 22 | ||
23 | private slots: | 23 | private slots: |
24 | void slotPopUp(); | ||
24 | void slotSelectDir( int ); | 25 | void slotSelectDir( int ); |
25 | void changed(); | 26 | void changed(); |
26 | 27 | ||
27 | private: | 28 | private: |
28 | QPopupMenu* m_pop; | 29 | QPopupMenu* m_pop; |
29 | StorageInfo *m_storage; | 30 | StorageInfo *m_storage; |
30 | QMap<QString, QString> m_dev; | 31 | QMap<QString, QString> m_dev; |
31 | }; | 32 | }; |
32 | 33 | ||
33 | 34 | ||
34 | #endif | 35 | #endif |