summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/mediummount/mediumwidget.cc23
-rw-r--r--noncore/settings/mediummount/mediumwidget.h2
2 files changed, 22 insertions, 3 deletions
diff --git a/noncore/settings/mediummount/mediumwidget.cc b/noncore/settings/mediummount/mediumwidget.cc
index caa9559..f39a6ed 100644
--- a/noncore/settings/mediummount/mediumwidget.cc
+++ b/noncore/settings/mediummount/mediumwidget.cc
@@ -1,233 +1,250 @@
1 1
2 2
3#include <qcheckbox.h> 3#include <qcheckbox.h>
4#include <qgroupbox.h> 4#include <qgroupbox.h>
5#include <qhbox.h> 5#include <qhbox.h>
6#include <qlabel.h> 6#include <qlabel.h>
7#include <qabstractlayout.h> 7#include <qabstractlayout.h>
8#include <qlayout.h> 8#include <qlayout.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10#include <qpixmap.h> 10#include <qpixmap.h>
11#include <qpushbutton.h> 11#include <qpushbutton.h>
12#include <qvbox.h> 12#include <qvbox.h>
13#include <qwhatsthis.h> 13#include <qwhatsthis.h>
14#include <qcombobox.h> 14#include <qcombobox.h>
15 15
16 16
17#include <qpe/config.h> 17#include <qpe/config.h>
18#include <qpe/qpeapplication.h> 18#include <qpe/qpeapplication.h>
19 19
20#include "mediumwidget.h" 20#include "mediumwidget.h"
21 21
22 22
23 23
24using namespace MediumMountSetting; 24using namespace MediumMountSetting;
25 25
26/* TRANSLATOR MediumMountSetting::MediumMountWidget */ 26/* TRANSLATOR MediumMountSetting::MediumMountWidget */
27 27
28MediumMountWidget::MediumMountWidget(const QString &path, 28MediumMountWidget::MediumMountWidget(const QString &path,
29 const QPixmap &pix, 29 const QPixmap &pix,
30 QWidget *parent, 30 QWidget *parent,
31 const char *name ) 31 const char *name )
32 : QWidget( parent, name ) 32 : QWidget( parent, name )
33{ 33{
34 if(parent == 0){ 34 if(parent == 0){
35 resize(QApplication::desktop()->width(), QApplication::desktop()->height() ); 35 resize(QApplication::desktop()->width(), QApplication::desktop()->height() );
36 }else{ 36 }else{
37 resize(parent->width(), parent->height() ); 37 resize(parent->width(), parent->height() );
38 } 38 }
39 m_path = path; 39 m_path = path;
40 initGUI(); 40 initGUI();
41 m_label->setPixmap(pix ); 41 m_label->setPixmap(pix );
42 m_config = 0; 42 m_config = 0;
43 43
44 readConfig(); 44 readConfig();
45} 45}
46// now we fire up the GUI 46// now we fire up the GUI
47// if I would know what I'm doing ;) 47// if I would know what I'm doing ;)
48void MediumMountWidget::initGUI() 48void MediumMountWidget::initGUI()
49{ 49{
50 //main layout 50 //main layout
51 m_box = new QVBoxLayout( this , 5, 5 ); 51 m_box = new QVBoxLayout( this , 5, 5 );
52 //m_box->setSpacing( 5 ); 52 //m_box->setSpacing( 5 );
53 //m_box->addStretch( -1 ); 53 //m_box->addStretch( -1 );
54 54
55 // picture + text 55 // picture + text
56 m_infoBox = new QHBox(this, "infobox" ); 56 m_infoBox = new QHBox(this, "infobox" );
57 //m_infoBox->setSpacing( 4 ); 57 //m_infoBox->setSpacing( 4 );
58 m_label = new QLabel(m_infoBox ); 58 m_label = new QLabel(m_infoBox );
59 m_desc = new QLabel(m_infoBox ); 59 m_desc = new QLabel(m_infoBox );
60 m_desc->setTextFormat( Qt::RichText ); 60 m_desc->setTextFormat( Qt::RichText );
61 QWhatsThis::add( this, tr("Configure this medium. The changes will" 61 QWhatsThis::add( this, tr("Configure this medium. The changes will"
62 " go into effect when the application gets" 62 " go into effect when the application gets"
63 " closed. To update the Document Tab you need" 63 " closed. To update the Document Tab you need"
64 " to remove and insert this medium.")); 64 " to remove and insert this medium."));
65 m_desc->setText("" ); 65 m_desc->setText("" );
66 m_box->addWidget( m_infoBox ); // add the widget to the layout 66 m_box->addWidget( m_infoBox ); // add the widget to the layout
67 67
68 68
69 // groupbox 69 // groupbox
70 m_group = new QGroupBox(tr("Which media files"), this, "MediaFiles" ); 70 m_group = new QGroupBox(tr("Which media files"), this, "MediaFiles" );
71 m_checks = new QGridLayout( m_group, 4, 3 ); 71 m_checks = new QGridLayout( m_group, 4, 3 );
72 //m_checks->setMargin( 12 ); 72 //m_checks->setMargin( 12 );
73 73
74 74
75 75
76 QSpacerItem *item2 = new QSpacerItem(5, 8, 76 QSpacerItem *item2 = new QSpacerItem(5, 8,
77 QSizePolicy::Fixed, 77 QSizePolicy::Fixed,
78 QSizePolicy::Fixed); 78 QSizePolicy::Fixed);
79 m_box->addItem( item2 ); 79 m_box->addItem( item2 );
80 80
81 m_audio = new QCheckBox( tr("Audio"), m_group ); 81 m_audio = new QCheckBox( tr("Audio"), m_group );
82 m_all = new QCheckBox( tr("All") , m_group ); 82 m_all = new QCheckBox( tr("All") , m_group );
83 m_image = new QCheckBox( tr("Image"), m_group ); 83 m_image = new QCheckBox( tr("Image"), m_group );
84 m_text = new QCheckBox( tr("Text") , m_group ); 84 m_text = new QCheckBox( tr("Text") , m_group );
85 m_video = new QCheckBox( tr("Video"), m_group ); 85 m_video = new QCheckBox( tr("Video"), m_group );
86 86
87 QSpacerItem *iti1b = new QSpacerItem(2, 10, QSizePolicy::Fixed, 87 QSpacerItem *iti1b = new QSpacerItem(2, 10, QSizePolicy::Fixed,
88 QSizePolicy::Fixed ); 88 QSizePolicy::Fixed );
89 m_checks->addItem( iti1b, 0, 0 ); 89 m_checks->addItem( iti1b, 0, 0 );
90 90
91 m_checks->addWidget(m_audio, 1, 0 ); 91 m_checks->addWidget(m_audio, 1, 0 );
92 m_checks->addWidget(m_image, 2, 0 ); 92 m_checks->addWidget(m_image, 2, 0 );
93 m_checks->addWidget(m_all , 3, 0 ); 93 m_checks->addWidget(m_all , 3, 0 );
94 94
95 m_checks->addWidget(m_text, 1, 2 ); 95 m_checks->addWidget(m_text, 1, 2 );
96 m_checks->addWidget(m_video, 2, 2 ); 96 m_checks->addWidget(m_video, 2, 2 );
97 97
98 m_checks->addRowSpacing(0, 8 ); 98 m_checks->addRowSpacing(0, 8 );
99 m_checks->addColSpacing(1, 2 ); 99 m_checks->addColSpacing(1, 2 );
100 m_checks->setColStretch(1, -2 ); 100 m_checks->setColStretch(1, -2 );
101 101
102 connect(m_all, SIGNAL(stateChanged(int) ), 102 connect(m_all, SIGNAL(stateChanged(int) ),
103 this, SLOT(slotStateChanged() ) ); 103 this, SLOT(slotStateChanged() ) );
104 104
105 m_box->addWidget( m_group ); 105 m_box->addWidget( m_group );
106 106
107 // label 107 // label
108 m_lblPath = new QLabel(tr("Limit search to:"), this ); 108 m_lblPath = new QLabel(tr("Limit search to:"), this );
109 m_box->addWidget( m_lblPath ); 109 m_box->addWidget( m_lblPath );
110 110
111 111
112 m_subList = new QComboBox(FALSE,this,"docFolderList"); 112 m_subList = new QComboBox(FALSE,this,"docFolderList");
113 m_subList->setDuplicatesEnabled(FALSE); 113 m_subList->setDuplicatesEnabled(FALSE);
114 m_subList->setEditable(TRUE); 114 m_subList->setEditable(TRUE);
115 m_box->addWidget(m_subList); 115 m_box->addWidget(m_subList);
116 116
117 m_hboxAdd = new QHBox( this ); 117 m_hboxAdd = new QHBox( this );
118 m_add = new QPushButton(m_hboxAdd ); 118 m_add = new QPushButton(m_hboxAdd );
119 m_add->setText( tr("Add") ); 119 m_add->setText( tr("Add") );
120 m_del = new QPushButton(m_hboxAdd); 120 m_del = new QPushButton(m_hboxAdd);
121 m_del->setText(tr("Remove")); 121 m_del->setText(tr("Remove"));
122 122
123 connect(m_add, SIGNAL(clicked() ), 123 connect(m_add, SIGNAL(clicked() ),
124 this, SLOT(slotAdd() ) ); 124 this, SLOT(slotAdd() ) );
125 connect(m_del, SIGNAL(clicked() ), 125 connect(m_del, SIGNAL(clicked() ),
126 this, SLOT(slotRemove() ) ); 126 this, SLOT(slotRemove() ) );
127 127
128 m_box->addWidget(m_hboxAdd ); 128 m_box->addWidget(m_hboxAdd );
129 129 m_scan_all_check = new QCheckBox( tr("Scan whole media"), this );
130 connect(m_scan_all_check,SIGNAL(stateChanged(int)),this,SLOT(slotScanAllChanged(int)));
131
132 m_box->addWidget(m_scan_all_check);
133
130 m_always = new QCheckBox( tr("Always check this medium"), this ); 134 m_always = new QCheckBox( tr("Always check this medium"), this );
131 135
132 m_box->addWidget( m_always ); 136 m_box->addWidget( m_always );
133 137
134 QSpacerItem *item = new QSpacerItem(5, 50, 138 QSpacerItem *item = new QSpacerItem(5, 50,
135 QSizePolicy::Fixed, 139 QSizePolicy::Fixed,
136 QSizePolicy::Expanding ); 140 QSizePolicy::Expanding );
137 m_box->addItem(item ); 141 m_box->addItem(item );
138} 142}
139 143
140void MediumMountWidget::readConfig( ) 144void MediumMountWidget::readConfig( )
141{ 145{
142 if( m_config == 0 ) 146 if( m_config == 0 )
143 m_config = new Config(m_path + "/.opiestorage.cf", Config::File ); 147 m_config = new Config(m_path + "/.opiestorage.cf", Config::File );
144 m_config->setGroup( "main" ); 148 m_config->setGroup( "main" );
145 149
146 m_always->setChecked( m_config->readBoolEntry("check", false) ); 150 m_always->setChecked( m_config->readBoolEntry("check", false) );
147 151
148 m_config->setGroup( "mimetypes" ); 152 m_config->setGroup( "mimetypes" );
149 if( m_config->readBoolEntry("all", false ) ){ 153 if( m_config->readBoolEntry("all", false ) ){
150 m_audio->setEnabled( false ); 154 m_audio->setEnabled( false );
151 m_image->setEnabled( false ); 155 m_image->setEnabled( false );
152 m_text->setEnabled ( false ); 156 m_text->setEnabled ( false );
153 m_video->setEnabled( false ); 157 m_video->setEnabled( false );
154 m_all->setChecked( true ); 158 m_all->setChecked( true );
155 }else{ 159 }else{
156 m_audio->setEnabled( true ); 160 m_audio->setEnabled( true );
157 m_image->setEnabled( true ); 161 m_image->setEnabled( true );
158 m_text->setEnabled ( true ); 162 m_text->setEnabled ( true );
159 m_all->setEnabled ( true ); 163 m_all->setEnabled ( true );
160 164
161 m_all->setChecked( false ); 165 m_all->setChecked( false );
162 166
163 m_audio->setChecked( m_config->readBoolEntry("audio", true ) ); 167 m_audio->setChecked( m_config->readBoolEntry("audio", true ) );
164 m_image->setChecked( m_config->readBoolEntry("image", true ) ); 168 m_image->setChecked( m_config->readBoolEntry("image", true ) );
165 m_text->setChecked ( m_config->readBoolEntry("text" , true ) ); 169 m_text->setChecked ( m_config->readBoolEntry("text" , true ) );
166 m_video->setChecked( m_config->readBoolEntry("video", true ) ); 170 m_video->setChecked( m_config->readBoolEntry("video", true ) );
167 }; 171 };
168 m_config->setGroup("subdirs"); 172 m_config->setGroup("subdirs");
169 QStringList entries = m_config->readListEntry("subdirs",':'); 173 QStringList entries = m_config->readListEntry("subdirs",':');
170 m_subList->clear(); 174 m_subList->clear();
171 m_subList->insertStringList(entries); 175 m_subList->insertStringList(entries);
176 m_scan_all_check->setChecked(m_config->readBoolEntry("wholemedia",true));
172} 177}
173 178
174void MediumMountWidget::writeConfig() 179void MediumMountWidget::writeConfig()
175{ 180{
176 m_config->setGroup("main"); 181 m_config->setGroup("main");
177 m_config->writeEntry("check", m_always->isChecked() ); 182 m_config->writeEntry("check", m_always->isChecked() );
178 183
179 m_config->setGroup("mimetypes" ); 184 m_config->setGroup("mimetypes" );
180 if(m_all->isChecked() ){ 185 if(m_all->isChecked() ){
181 m_config->writeEntry("all", true ); 186 m_config->writeEntry("all", true );
182 }else{ 187 }else{
183 m_config->writeEntry("audio", m_audio->isChecked() ); 188 m_config->writeEntry("audio", m_audio->isChecked() );
184 m_config->writeEntry("image", m_image->isChecked() ); 189 m_config->writeEntry("image", m_image->isChecked() );
185 m_config->writeEntry("text" , m_text->isChecked() ); 190 m_config->writeEntry("text" , m_text->isChecked() );
186 m_config->writeEntry("video", m_video->isChecked() ); 191 m_config->writeEntry("video", m_video->isChecked() );
187 } 192 }
188 m_config->setGroup("subdirs"); 193 m_config->setGroup("subdirs");
189 QStringList entries; 194 QStringList entries;
190 QString ctext; 195 QString ctext;
191 for (int i = 0; i < m_subList->count();++i) { 196 for (int i = 0; i < m_subList->count();++i) {
192 ctext = m_subList->text(i); 197 ctext = m_subList->text(i);
193 if (ctext.isEmpty()) 198 if (ctext.isEmpty())
194 continue; 199 continue;
195 if (ctext.startsWith("/")&&ctext.length()>1) { 200 if (ctext.startsWith("/")) {
196 ctext = ctext.right(ctext.length()-1); 201 ctext = ctext.right(ctext.length()-1);
197 } 202 }
198 entries.append(ctext); 203 if (!ctext.isEmpty()) {
204 entries.append(ctext);
205 }
199 } 206 }
200 m_config->writeEntry("subdirs",entries,':'); 207 m_config->writeEntry("subdirs",entries,':');
208 m_config->writeEntry("wholemedia",m_scan_all_check->isChecked());
201} 209}
210
202MediumMountWidget::~MediumMountWidget() 211MediumMountWidget::~MediumMountWidget()
203{ 212{
204 delete m_config; 213 delete m_config;
205} 214}
206 215
207void MediumMountWidget::slotAdd() 216void MediumMountWidget::slotAdd()
208{ 217{
209 if (m_subList->currentText()==m_subList->text(m_subList->currentItem())) 218 if (m_subList->currentText()==m_subList->text(m_subList->currentItem()))
210 return; 219 return;
211 m_subList->insertItem(m_subList->currentText()); 220 m_subList->insertItem(m_subList->currentText());
212} 221}
213 222
214void MediumMountWidget::slotRemove() 223void MediumMountWidget::slotRemove()
215{ 224{
216 QString text = m_subList->currentText(); 225 QString text = m_subList->currentText();
217 if (text != m_subList->text(m_subList->currentItem())) { 226 if (text != m_subList->text(m_subList->currentItem())) {
218 m_subList->clearEdit (); 227 m_subList->clearEdit ();
219 } else { 228 } else {
220 m_subList->removeItem(m_subList->currentItem()); 229 m_subList->removeItem(m_subList->currentItem());
221 } 230 }
222} 231}
223 232
224void MediumMountWidget::slotStateChanged() 233void MediumMountWidget::slotStateChanged()
225{ 234{
226 bool state = !(m_all->isChecked()); 235 bool state = !(m_all->isChecked());
227 236
228 m_audio->setEnabled( state ); 237 m_audio->setEnabled( state );
229 m_text->setEnabled ( state ); 238 m_text->setEnabled ( state );
230 m_video->setEnabled( state ); 239 m_video->setEnabled( state );
231 m_image->setEnabled( state ); 240 m_image->setEnabled( state );
232 241
233} 242}
243
244void MediumMountWidget::slotScanAllChanged(int)
245{
246 bool state = !(m_scan_all_check->isChecked());
247 m_add->setEnabled(state);
248 m_del->setEnabled(state);
249 m_subList->setEnabled(state);
250}
diff --git a/noncore/settings/mediummount/mediumwidget.h b/noncore/settings/mediummount/mediumwidget.h
index 28ae369..ae5c5dc 100644
--- a/noncore/settings/mediummount/mediumwidget.h
+++ b/noncore/settings/mediummount/mediumwidget.h
@@ -1,82 +1,84 @@
1 1
2#ifndef MediumMountWidget_H 2#ifndef MediumMountWidget_H
3#define MediumMountWidget_H 3#define MediumMountWidget_H
4 4
5//#include <qpixmap.h> 5//#include <qpixmap.h>
6#include <qwidget.h> 6#include <qwidget.h>
7 7
8 8
9class QLabel; 9class QLabel;
10class QPixmap; 10class QPixmap;
11class Config; 11class Config;
12class QGridLayout; 12class QGridLayout;
13class QCheckBox; 13class QCheckBox;
14class QPushButton; 14class QPushButton;
15class QVBoxLayout; 15class QVBoxLayout;
16class QHBoxLayout; 16class QHBoxLayout;
17class QGroupBox; 17class QGroupBox;
18class QVBox; 18class QVBox;
19class QHBox; 19class QHBox;
20class QLineEdit; 20class QLineEdit;
21class QComboBox; 21class QComboBox;
22 22
23namespace MediumMountSetting { 23namespace MediumMountSetting {
24 24
25 class MediumMountWidget : public QWidget { 25 class MediumMountWidget : public QWidget {
26 Q_OBJECT 26 Q_OBJECT
27 public: 27 public:
28 MediumMountWidget(const QString&, const QPixmap &, QWidget *parent, const char *name = 0 ); 28 MediumMountWidget(const QString&, const QPixmap &, QWidget *parent, const char *name = 0 );
29 ~MediumMountWidget(); 29 ~MediumMountWidget();
30 30
31 31
32 void writeConfig(); 32 void writeConfig();
33 33
34 private slots: 34 private slots:
35 void slotAdd(); 35 void slotAdd();
36 void slotRemove(); 36 void slotRemove();
37 void slotStateChanged(); 37 void slotStateChanged();
38 void slotScanAllChanged(int);
38 39
39 private: 40 private:
40 void readConfig(); 41 void readConfig();
41 void initGUI(); 42 void initGUI();
42 43
43 bool m_dirty : 1; 44 bool m_dirty : 1;
44 45
45 class MediumMountWidgetPrivate; 46 class MediumMountWidgetPrivate;
46 MediumMountWidgetPrivate *d; 47 MediumMountWidgetPrivate *d;
47 48
48 QString m_path; 49 QString m_path;
49 50
50 Config *m_config; 51 Config *m_config;
51 52
52 QHBox *m_infoBox; 53 QHBox *m_infoBox;
53 QLabel *m_label; 54 QLabel *m_label;
54 QLabel *m_desc; 55 QLabel *m_desc;
55 56
56 QPushButton *m_add; 57 QPushButton *m_add;
57 QComboBox *m_subList; 58 QComboBox *m_subList;
58 QPushButton *m_del; 59 QPushButton *m_del;
59 60
60 QVBoxLayout *m_box; 61 QVBoxLayout *m_box;
61 QGridLayout *m_checks; 62 QGridLayout *m_checks;
62 63
63 QGroupBox *m_group; 64 QGroupBox *m_group;
64 QCheckBox *m_all; 65 QCheckBox *m_all;
65 QCheckBox *m_audio; 66 QCheckBox *m_audio;
66 QCheckBox *m_image; 67 QCheckBox *m_image;
67 QCheckBox *m_text; 68 QCheckBox *m_text;
68 QCheckBox *m_video; 69 QCheckBox *m_video;
69 70
71 QCheckBox *m_scan_all_check;
70 QCheckBox *m_always; 72 QCheckBox *m_always;
71 //QCheckBox *m_yesNo; 73 //QCheckBox *m_yesNo;
72 74
73 QHBox *m_hboxAdd; 75 QHBox *m_hboxAdd;
74 76
75 QLabel *m_lblPath; 77 QLabel *m_lblPath;
76 //////////////// 78 ////////////////
77 79
78 80
79 81
80 }; 82 };
81}; 83};
82#endif 84#endif