summaryrefslogtreecommitdiff
path: root/noncore/settings/aqpkg/categoryfilterimpl.cpp
blob: 0746da65e41308db2f560ffbe8dbc646c7b61e8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/***************************************************************************
                          categoryfilterimpl.cpp  -  description
                             -------------------
    begin                : Sun Nov 17 2002
    copyright            : (C) 2002 by Andy Qua
    email                : andy.qua@blueyonder.co.uk
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/
#include <iostream>
using namespace std;
 
#include <qlistbox.h>
#include <qstring.h>

#include "categoryfilterimpl.h"

CategoryFilterImpl :: CategoryFilterImpl(const QString &categories, const QString &selectedCategories, QWidget *parent, const char *name )
    : CategoryFilterDlg(parent,name, true)
{
    // Split up categories and add them to the listbox
    int start = 1;

    QString item;
    int end;
    do
    {
        end = categories.find( "#", start );
        item = categories.mid( start, end - start );
        if ( item != "" )
        {
            lstCategories->insertItem( item );

            if ( selectedCategories.find( "#" + item + "#" ) != -1 )
                lstCategories->setSelected( lstCategories->count()-1, true );
        }

        start = end + 1;
    } while ( start < (int)categories.length() );

    lstCategories->sort( true );

    showMaximized();
}

CategoryFilterImpl :: ~CategoryFilterImpl()
{
}

QString CategoryFilterImpl :: getSelectedFilter()
{
    // Grab cetegories from listbox
    QString ret = "#";

    for ( int i = 0 ; i < (int)lstCategories->count() ; ++i )
    {
        if ( lstCategories->isSelected( i ) )
            ret += lstCategories->text( i ) + "#";
    }

    if ( ret == "#" )
        ret = "";
    return ret;
}