~ubuntu-branches/ubuntu/trusty/krusader/trusty

« back to all changes in this revision

Viewing changes to krusader/Filter/filtertabs.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Michał Zając
  • Date: 2011-08-08 13:47:36 UTC
  • mfrom: (1.2.19 upstream)
  • Revision ID: james.westby@ubuntu.com-20110808134736-8e630ivgd2c3sgg5
Tags: 1:2.4.0~beta1-0ubuntu1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
#include "filterdialog.h"
33
33
#include "generalfilter.h"
34
34
#include "advancedfilter.h"
 
35
#include "../krglobal.h"
35
36
 
36
37
#include <klocale.h>
 
38
#include <kmessagebox.h>
 
39
 
37
40
 
38
41
FilterTabs::FilterTabs(int properties, KTabWidget *tabWidget,
39
42
                       QObject *parent, QStringList extraOptions) :
50
53
    tabWidget->addTab(advancedFilter, i18n("&Advanced"));
51
54
    filterList.append(advancedFilter);
52
55
    pageNumbers.append(tabWidget->indexOf(advancedFilter));
 
56
 
 
57
    reset(); // apply defaults
53
58
}
54
59
 
55
60
bool FilterTabs::isExtraOptionChecked(QString name)
67
72
    return new FilterTabs(props, tabWidget, tabWidget, extraOptions);
68
73
}
69
74
 
 
75
FilterSettings FilterTabs::getSettings()
 
76
{
 
77
    FilterSettings s;
 
78
 
 
79
    for (int i = 0; i != filterList.count(); i++) {
 
80
        if(!filterList[i]->getSettings(s)) {
 
81
            tabWidget->setCurrentIndex(pageNumbers[i]);
 
82
            return FilterSettings();
 
83
        }
 
84
    }
 
85
 
 
86
    s.valid = true;
 
87
    acceptQuery();
 
88
 
 
89
    return s;
 
90
}
 
91
 
 
92
void FilterTabs::applySettings(const FilterSettings &s)
 
93
{
 
94
    if(s.isValid()) {
 
95
        QListIterator<FilterBase*> it(filterList);
 
96
        while (it.hasNext())
 
97
            it.next()->applySettings(s);
 
98
    }
 
99
}
 
100
 
 
101
void FilterTabs::reset()
 
102
{
 
103
    FilterSettings s; // default settings
 
104
    s.valid = true;
 
105
    applySettings(s);
 
106
}
 
107
 
70
108
void FilterTabs::saveToProfile(QString name)
71
109
{
72
 
    QListIterator<FilterBase *> it(filterList);
73
 
    while (it.hasNext()) {
74
 
        FilterBase *filter = it.next();
75
 
 
76
 
        filter->saveToProfile(name);
77
 
    }
 
110
    FilterSettings s(getSettings());
 
111
    if(s.isValid())
 
112
        s.save(KConfigGroup(krConfig, name));
 
113
    krConfig->sync();
78
114
}
79
115
 
80
116
void FilterTabs::loadFromProfile(QString name)
81
117
{
82
 
    QListIterator<FilterBase *> it(filterList);
83
 
    while (it.hasNext()) {
84
 
        FilterBase *filter = it.next();
85
 
 
86
 
        filter->loadFromProfile(name);
87
 
    }
 
118
    FilterSettings s;
 
119
    s.load(KConfigGroup(krConfig, name));
 
120
    if(!s.isValid())
 
121
        KMessageBox::error(tabWidget, i18n("Couldn't load profile."));
 
122
    else
 
123
        applySettings(s);
88
124
}
89
125
 
90
126
void FilterTabs::acceptQuery()
99
135
 
100
136
bool FilterTabs::fillQuery(KRQuery *query)
101
137
{
102
 
    for (unsigned int i = 0; i != filterList.count(); i++) {
103
 
 
104
 
        FilterBase *filter = filterList.at(i);
105
 
 
106
 
        bool result = filter->fillQuery(query);
107
 
        if (result == false) {
108
 
            tabWidget->setCurrentIndex(pageNumbers[ i ]);
109
 
            return false;
110
 
        }
111
 
    }
112
 
 
113
 
    acceptQuery();
114
 
    return true;
 
138
    *query = getSettings().toQuery();
 
139
 
 
140
    return !query->isNull();
115
141
}
116
142
 
117
143
FilterBase * FilterTabs::get(QString name)
133
159
    return dialog.getQuery();
134
160
}
135
161
 
 
162
 
136
163
#include "filtertabs.moc"
137