Diffstat (limited to 'examples/opiecore/onotifydemo') (more/less context) (ignore whitespace changes)
-rw-r--r-- | examples/opiecore/onotifydemo/.cvsignore | 6 | ||||
-rw-r--r-- | examples/opiecore/onotifydemo/onotifydemo.cpp | 144 | ||||
-rw-r--r-- | examples/opiecore/onotifydemo/onotifydemo.pro | 18 |
3 files changed, 168 insertions, 0 deletions
diff --git a/examples/opiecore/onotifydemo/.cvsignore b/examples/opiecore/onotifydemo/.cvsignore new file mode 100644 index 0000000..8f7300c --- a/dev/null +++ b/examples/opiecore/onotifydemo/.cvsignore | |||
@@ -0,0 +1,6 @@ | |||
1 | Makefile* | ||
2 | moc* | ||
3 | *moc | ||
4 | *.o | ||
5 | ~* | ||
6 | |||
diff --git a/examples/opiecore/onotifydemo/onotifydemo.cpp b/examples/opiecore/onotifydemo/onotifydemo.cpp new file mode 100644 index 0000000..b9ff9db --- a/dev/null +++ b/examples/opiecore/onotifydemo/onotifydemo.cpp | |||
@@ -0,0 +1,144 @@ | |||
1 | /* OPIE */ | ||
2 | #include <opie2/odebug.h> | ||
3 | #include <opie2/oapplication.h> | ||
4 | #include <opie2/ofiledialog.h> | ||
5 | #include <opie2/olistview.h> | ||
6 | #include <opie2/ofilenotify.h> | ||
7 | using namespace Opie::Core; | ||
8 | using namespace Opie::Ui; | ||
9 | |||
10 | /* QT */ | ||
11 | #include <qcheckbox.h> | ||
12 | #include <qvbox.h> | ||
13 | #include <qhbox.h> | ||
14 | #include <qhbuttongroup.h> | ||
15 | #include <qvbuttongroup.h> | ||
16 | #include <qmessagebox.h> | ||
17 | #include <qpushbutton.h> | ||
18 | |||
19 | class DemoApp : public OApplication | ||
20 | { | ||
21 | Q_OBJECT | ||
22 | public: | ||
23 | DemoApp( int argc, char** argv ) : OApplication( argc, argv, "libopie2 notify demo" ) | ||
24 | { | ||
25 | |||
26 | QVBox* vbox = new QVBox(); | ||
27 | setMainWidget( vbox ); | ||
28 | |||
29 | l = new OListView( vbox ); | ||
30 | l->addColumn( "Notification Path" ); | ||
31 | l->addColumn( "Trigger Type" ); | ||
32 | l->addColumn( "Trigger Mask" ); | ||
33 | l->setColumnAlignment( 1, AlignCenter ); | ||
34 | l->setColumnAlignment( 2, AlignCenter ); | ||
35 | |||
36 | QHBox* hbox = new QHBox( vbox ); | ||
37 | |||
38 | g2 = new QVButtonGroup( "Specify Trigger Type", hbox ); | ||
39 | //QCheckBox* c1 = new QCheckBox( "Multi", g2 ); | ||
40 | QCheckBox* c2 = new QCheckBox( "Access", g2 ); | ||
41 | QCheckBox* c3 = new QCheckBox( "Modify", g2 ); | ||
42 | QCheckBox* c4 = new QCheckBox( "Create", g2 ); | ||
43 | QCheckBox* c5 = new QCheckBox( "Delete", g2 ); | ||
44 | QCheckBox* c6 = new QCheckBox( "Rename", g2 ); | ||
45 | QCheckBox* c7 = new QCheckBox( "Attrib", g2 ); | ||
46 | g2->insert( c2, Access ); | ||
47 | g2->insert( c3, Modify ); | ||
48 | g2->insert( c4, Create ); | ||
49 | g2->insert( c5, Delete ); | ||
50 | g2->insert( c6, Rename ); | ||
51 | g2->insert( c7, Attrib ); | ||
52 | connect( g2, SIGNAL( pressed(int) ), this, SLOT( modifierClicked(int) ) ); | ||
53 | |||
54 | g1 = new QVButtonGroup( "Add/Remove", hbox ); | ||
55 | QPushButton* plus1 = new QPushButton( "Add\n&Single", g1 ); | ||
56 | QPushButton* plus2 = new QPushButton( "Add\n&Multi", g1 ); | ||
57 | QPushButton* minus = new QPushButton( "&Remove\nIt!", g1 ); | ||
58 | g1->insert( plus1, 0 ); | ||
59 | g1->insert( plus2, 1 ); | ||
60 | g1->insert( minus, 2 ); | ||
61 | connect( plus1, SIGNAL( clicked() ), this, SLOT( addSingle() ) ); | ||
62 | connect( plus2, SIGNAL( clicked() ), this, SLOT( addMulti() ) ); | ||
63 | connect( minus, SIGNAL( clicked() ), this, SLOT( delTrigger() ) ); | ||
64 | |||
65 | g1->show(); | ||
66 | g2->show(); | ||
67 | l->show(); | ||
68 | hbox->show(); | ||
69 | vbox->show(); | ||
70 | showMainWidget( vbox ); | ||
71 | } | ||
72 | |||
73 | public: | ||
74 | void addTrigger( bool multi = false ) | ||
75 | { | ||
76 | if ( !m ) | ||
77 | { | ||
78 | QMessageBox::warning( 0, "Add Trigger", "<p>Can't add trigger without at least one selected trigger type</p>", "&Sorry", 0 ); | ||
79 | return; | ||
80 | } | ||
81 | |||
82 | QString filename = OFileDialog::getOpenFileName( OFileSelector::ExtendedAll ); | ||
83 | if ( !filename.isEmpty() ) | ||
84 | { | ||
85 | odebug << "Filename = " << filename << oendl; | ||
86 | |||
87 | int fntype = m; | ||
88 | if ( multi ) fntype |=(int) Multi; | ||
89 | |||
90 | QString modifier = QString().sprintf( " = 0x%08x", fntype ); | ||
91 | new OListViewItem( l, filename, multi ? "MULTI" : "SINGLE", modifier ); | ||
92 | if ( !multi ) | ||
93 | OFileNotification::singleShot( filename, this, SLOT( trigger() ), (OFileNotificationType) fntype ); | ||
94 | else | ||
95 | OFileNotification::singleShot( filename, this, SLOT( trigger() ), (OFileNotificationType) fntype ); | ||
96 | } | ||
97 | else | ||
98 | { | ||
99 | odebug << "cancelled." << oendl; | ||
100 | } | ||
101 | } | ||
102 | |||
103 | public slots: | ||
104 | void modifierClicked( int modifier ) { m = static_cast<OFileNotificationType>( (int)m ^ int(modifier) ); }; | ||
105 | void addSingle() { addTrigger(); }; | ||
106 | void addMulti() { addTrigger( true ); }; | ||
107 | |||
108 | void delTrigger() | ||
109 | { | ||
110 | QListViewItem* item = l->selectedItem(); | ||
111 | if ( !item ) | ||
112 | { | ||
113 | QMessageBox::warning( 0, "Del Trigger", "<p>No trigger selected!</p>", "&Sorry", 0 ); | ||
114 | return; | ||
115 | } | ||
116 | else | ||
117 | { | ||
118 | QString filename( item->text( 0 ) ); | ||
119 | odebug << "Filename = " << filename << oendl; | ||
120 | } | ||
121 | } | ||
122 | |||
123 | void trigger() | ||
124 | { | ||
125 | owarn << "FIRE!" << oendl; | ||
126 | } | ||
127 | |||
128 | private: | ||
129 | OListView* l; | ||
130 | QButtonGroup* g1; | ||
131 | QButtonGroup* g2; | ||
132 | OFileNotificationType m; | ||
133 | }; | ||
134 | |||
135 | int main( int argc, char** argv ) | ||
136 | { | ||
137 | DemoApp* app = new DemoApp( argc, argv ); | ||
138 | app->exec(); | ||
139 | |||
140 | return 0; | ||
141 | |||
142 | } | ||
143 | |||
144 | #include "moc/onotifydemo.moc" | ||
diff --git a/examples/opiecore/onotifydemo/onotifydemo.pro b/examples/opiecore/onotifydemo/onotifydemo.pro new file mode 100644 index 0000000..d2c9138 --- a/dev/null +++ b/examples/opiecore/onotifydemo/onotifydemo.pro | |||
@@ -0,0 +1,18 @@ | |||
1 | TEMPLATE = app | ||
2 | CONFIG = qt warn_on | ||
3 | HEADERS = | ||
4 | SOURCES = onotifydemo.cpp | ||
5 | INCLUDEPATH += $(OPIEDIR)/include | ||
6 | DEPENDPATH += $(OPIEDIR)/include | ||
7 | LIBS += -lopiecore2 -lopieui2 | ||
8 | TARGET = onotifydemo | ||
9 | |||
10 | !contains( platform, x11 ) { | ||
11 | include( $(OPIEDIR)/include.pro ) | ||
12 | } | ||
13 | |||
14 | contains( platform, x11 ) { | ||
15 | LIBS += -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib | ||
16 | } | ||
17 | |||
18 | MOC_DIR = moc | ||