OSDN Git Service

Ver0.26
[gefu/Gefu.git] / sortdialog.cpp
1 #include "foldermodel.h"\r
2 #include "sortdialog.h"\r
3 #include "ui_sortdialog.h"\r
4 \r
5 ///////////////////////////////////////////////////////////////////////////////\r
6 /// \brief SortDialog::SortDialog\r
7 /// \param parent   親ウィジェット\r
8 ///\r
9 /// コンストラクタ\r
10 ///\r
11 SortDialog::SortDialog(QWidget *parent) :\r
12     QDialog(parent),\r
13     ui(new Ui::SortDialog),\r
14     m_model(NULL)\r
15 {\r
16     ui->setupUi(this);\r
17 }\r
18 \r
19 ///////////////////////////////////////////////////////////////////////////////\r
20 /// \brief SortDialog::~SortDialog\r
21 ///\r
22 /// デストラクタ\r
23 ///\r
24 SortDialog::~SortDialog()\r
25 {\r
26     delete ui;\r
27 }\r
28 \r
29 ///////////////////////////////////////////////////////////////////////////////\r
30 /// \brief SortDialog::setModel\r
31 /// \param m    フォルダモデル\r
32 ///\r
33 /// モデルを設定します。\r
34 ///\r
35 void SortDialog::setModel(FolderModel *m)\r
36 {\r
37     m_model = m;\r
38     QDir::SortFlags sort = m->sorting();\r
39 \r
40     if (sort & QDir::Time) {\r
41         ui->sortByDate->setChecked(true);\r
42         if (sort & QDir::Reversed)\r
43             ui->orderAsc->setChecked(true);\r
44     }\r
45     else if (sort & QDir::Size) {\r
46         ui->sortBySize->setChecked(true);\r
47         if (sort & QDir::Reversed)\r
48             ui->orderAsc->setChecked(true);\r
49     }\r
50     else if (sort & QDir::Type) {\r
51         ui->sortByType->setChecked(true);\r
52         if (sort & QDir::Reversed)\r
53             ui->orderDesc->setChecked(true);\r
54     }\r
55     else {\r
56         ui->sortByName->setChecked(true);\r
57         if (sort & QDir::Reversed)\r
58             ui->orderDesc->setChecked(true);\r
59     }\r
60 \r
61     if (sort & QDir::DirsFirst) {\r
62         ui->dirsFirst->setChecked(true);\r
63     }\r
64     else if (sort & QDir::DirsLast) {\r
65         ui->dirsLast->setChecked(true);\r
66     }\r
67     else {\r
68         ui->dirsLast->setChecked(true);\r
69     }\r
70 \r
71     if (sort & QDir::IgnoreCase)\r
72         ui->ignoreCase->setChecked(true);\r
73 }\r
74 \r
75 ///////////////////////////////////////////////////////////////////////////////\r
76 /// \brief SortDialog::accept\r
77 ///\r
78 /// OKボタンクリック時の処理を行います。\r
79 ///\r
80 void SortDialog::accept()\r
81 {\r
82     QDir::SortFlags sort;\r
83 \r
84     if (ui->sortByDate->isChecked()) {\r
85         sort |= QDir::Time;\r
86         if (ui->orderAsc->isChecked())\r
87             sort |= QDir::Reversed;\r
88     }\r
89     else if (ui->sortBySize->isChecked()) {\r
90         sort |= QDir::Size;\r
91         if (ui->orderAsc->isChecked())\r
92             sort |= QDir::Reversed;\r
93     }\r
94     else if (ui->sortByType->isChecked()) {\r
95         sort |= QDir::Type;\r
96         if (ui->orderDesc->isChecked())\r
97             sort |= QDir::Reversed;\r
98     }\r
99     else {\r
100         sort |= QDir::Name;\r
101         if (ui->orderDesc->isChecked())\r
102             sort |= QDir::Reversed;\r
103     }\r
104 \r
105     if (ui->dirsFirst->isChecked()) {\r
106         sort |= QDir::DirsFirst;\r
107     }\r
108     else if (ui->dirsLast->isChecked()) {\r
109         sort |= QDir::DirsLast;\r
110     }\r
111 \r
112     if (ui->ignoreCase->isChecked())\r
113         sort |= QDir::IgnoreCase;\r
114 \r
115     m_model->setSorting(sort);\r
116     m_model->refresh();\r
117 \r
118     QDialog::accept();\r
119 }\r