OSDN Git Service

Ver0.23
[gefu/Gefu.git] / sortdialog.cpp
1 #include "foldermodel.h"\r
2 #include "sortdialog.h"\r
3 #include "ui_sortdialog.h"\r
4 \r
5 SortDialog::SortDialog(QWidget *parent) :\r
6     QDialog(parent),\r
7     ui(new Ui::SortDialog),\r
8     m_model(NULL)\r
9 {\r
10     ui->setupUi(this);\r
11 }\r
12 \r
13 SortDialog::~SortDialog()\r
14 {\r
15     delete ui;\r
16 }\r
17 \r
18 void SortDialog::setModel(FolderModel *m)\r
19 {\r
20     m_model = m;\r
21     QDir::SortFlags sort = m->sorting();\r
22 \r
23     if (sort & QDir::Time) {\r
24         ui->sortByDate->setChecked(true);\r
25         if (sort & QDir::Reversed)\r
26             ui->orderAsc->setChecked(true);\r
27     }\r
28     else if (sort & QDir::Size) {\r
29         ui->sortBySize->setChecked(true);\r
30         if (sort & QDir::Reversed)\r
31             ui->orderAsc->setChecked(true);\r
32     }\r
33     else if (sort & QDir::Type) {\r
34         ui->sortByType->setChecked(true);\r
35         if (sort & QDir::Reversed)\r
36             ui->orderDesc->setChecked(true);\r
37     }\r
38     else {\r
39         ui->sortByName->setChecked(true);\r
40         if (sort & QDir::Reversed)\r
41             ui->orderDesc->setChecked(true);\r
42     }\r
43 \r
44     if (sort & QDir::DirsFirst) {\r
45         ui->dirsFirst->setChecked(true);\r
46     }\r
47     else if (sort & QDir::DirsLast) {\r
48         ui->dirsLast->setChecked(true);\r
49     }\r
50     else {\r
51         ui->dirsLast->setChecked(true);\r
52     }\r
53 \r
54     if (sort & QDir::IgnoreCase)\r
55         ui->ignoreCase->setChecked(true);\r
56 }\r
57 \r
58 \r
59 void SortDialog::accept()\r
60 {\r
61     QDir::SortFlags sort;\r
62 \r
63     if (ui->sortByDate->isChecked()) {\r
64         sort |= QDir::Time;\r
65         if (ui->orderAsc->isChecked())\r
66             sort |= QDir::Reversed;\r
67     }\r
68     else if (ui->sortBySize->isChecked()) {\r
69         sort |= QDir::Size;\r
70         if (ui->orderAsc->isChecked())\r
71             sort |= QDir::Reversed;\r
72     }\r
73     else if (ui->sortByType->isChecked()) {\r
74         sort |= QDir::Type;\r
75         if (ui->orderDesc->isChecked())\r
76             sort |= QDir::Reversed;\r
77     }\r
78     else {\r
79         sort |= QDir::Name;\r
80         if (ui->orderDesc->isChecked())\r
81             sort |= QDir::Reversed;\r
82     }\r
83 \r
84     if (ui->dirsFirst->isChecked()) {\r
85         sort |= QDir::DirsFirst;\r
86     }\r
87     else if (ui->dirsLast->isChecked()) {\r
88         sort |= QDir::DirsLast;\r
89     }\r
90 \r
91     if (ui->ignoreCase->isChecked())\r
92         sort |= QDir::IgnoreCase;\r
93 \r
94     m_model->setSorting(sort);\r
95     m_model->refresh();\r
96 \r
97     QDialog::accept();\r
98 }\r