-#include "common.h"\r
+#include "foldermodel.h"\r
#include "sortdialog.h"\r
#include "ui_sortdialog.h"\r
-#include <QSettings>\r
-#include <QDir>\r
\r
SortDialog::SortDialog(QWidget *parent) :\r
QDialog(parent),\r
ui(new Ui::SortDialog),\r
- m_RightOrLeft()\r
+ m_model(NULL)\r
{\r
ui->setupUi(this);\r
}\r
delete ui;\r
}\r
\r
-void SortDialog::setRightOrLeft(const QString &s)\r
+void SortDialog::setModel(FolderModel *m)\r
{\r
- QSettings settings;\r
+ m_model = m;\r
+ QDir::SortFlags sort = m->sorting();\r
\r
- m_RightOrLeft = s;\r
- int sortBy = settings.value(\r
- m_RightOrLeft + slash + IniKey_SortBy,\r
- SortByName).toInt();\r
- if (sortBy == SortByType) {\r
- ui->sortByType->setChecked(true);\r
+ if (sort & QDir::Time) {\r
+ ui->sortByDate->setChecked(true);\r
+ if (sort & QDir::Reversed)\r
+ ui->orderAsc->setChecked(true);\r
}\r
- else if (sortBy == SortBySize) {\r
+ else if (sort & QDir::Size) {\r
ui->sortBySize->setChecked(true);\r
+ if (sort & QDir::Reversed)\r
+ ui->orderAsc->setChecked(true);\r
}\r
- else if (sortBy == SortByDate) {\r
- ui->sortByDate->setChecked(true);\r
+ else if (sort & QDir::Type) {\r
+ ui->sortByType->setChecked(true);\r
+ if (sort & QDir::Reversed)\r
+ ui->orderDesc->setChecked(true);\r
}\r
else {\r
ui->sortByName->setChecked(true);\r
+ if (sort & QDir::Reversed)\r
+ ui->orderDesc->setChecked(true);\r
}\r
\r
- int orderBy = settings.value(\r
- m_RightOrLeft + slash + IniKey_OrderBy,\r
- OrderByAsc).toInt();\r
- if (orderBy == OrderByDesc) {\r
- ui->orderDesc->setChecked(true);\r
- }\r
- else {\r
- ui->orderAsc->setChecked(true);\r
- }\r
-\r
- int putDirs = settings.value(\r
- m_RightOrLeft + slash + IniKey_PutDirs,\r
- PutDirsFirst).toInt();\r
- if (putDirs == PutDirsDefault) {\r
- ui->dirsDefault->setChecked(true);\r
+ if (sort & QDir::DirsFirst) {\r
+ ui->dirsFirst->setChecked(true);\r
}\r
- else if (putDirs == PutDirsLast) {\r
+ else if (sort & QDir::DirsLast) {\r
ui->dirsLast->setChecked(true);\r
}\r
else {\r
- ui->dirsFirst->setChecked(true);\r
+ ui->dirsLast->setChecked(true);\r
}\r
\r
- bool ignoreCase = settings.value(\r
- m_RightOrLeft + slash + IniKey_IgnoreCase, true).toBool();\r
- ui->ignoreCase->setChecked(ignoreCase);\r
+ if (sort & QDir::IgnoreCase)\r
+ ui->ignoreCase->setChecked(true);\r
}\r
\r
+\r
void SortDialog::accept()\r
{\r
- QSettings settings;\r
+ QDir::SortFlags sort;\r
\r
- QString key = m_RightOrLeft + slash + IniKey_SortBy;\r
if (ui->sortByDate->isChecked()) {\r
- settings.setValue(key, SortByDate);\r
- }\r
- else if (ui->sortByName->isChecked()) {\r
- settings.setValue(key, SortByName);\r
+ sort |= QDir::Time;\r
+ if (ui->orderAsc->isChecked())\r
+ sort |= QDir::Reversed;\r
}\r
else if (ui->sortBySize->isChecked()) {\r
- settings.setValue(key, SortBySize);\r
+ sort |= QDir::Size;\r
+ if (ui->orderAsc->isChecked())\r
+ sort |= QDir::Reversed;\r
}\r
- else {\r
- settings.setValue(key, SortByType);\r
- }\r
-\r
- key = m_RightOrLeft + slash + IniKey_OrderBy;\r
- if (ui->orderAsc->isChecked()) {\r
- settings.setValue(key, OrderByAsc);\r
+ else if (ui->sortByType->isChecked()) {\r
+ sort |= QDir::Type;\r
+ if (ui->orderDesc->isChecked())\r
+ sort |= QDir::Reversed;\r
}\r
else {\r
- settings.setValue(key, OrderByDesc);\r
+ sort |= QDir::Name;\r
+ if (ui->orderDesc->isChecked())\r
+ sort |= QDir::Reversed;\r
}\r
\r
- key = m_RightOrLeft + slash + IniKey_PutDirs;\r
- if (ui->dirsDefault->isChecked()) {\r
- settings.setValue(key, PutDirsDefault);\r
- }\r
- else if (ui->dirsFirst->isChecked()) {\r
- settings.setValue(key, PutDirsFirst);\r
+ if (ui->dirsFirst->isChecked()) {\r
+ sort |= QDir::DirsFirst;\r
}\r
- else {\r
- settings.setValue(key, PutDirsLast);\r
+ else if (ui->dirsLast->isChecked()) {\r
+ sort |= QDir::DirsLast;\r
}\r
\r
- key = m_RightOrLeft + slash + IniKey_IgnoreCase;\r
- settings.setValue(key, ui->ignoreCase->isChecked());\r
+ if (ui->ignoreCase->isChecked())\r
+ sort |= QDir::IgnoreCase;\r
+\r
+ m_model->setSorting(sort);\r
+ m_model->refresh();\r
\r
QDialog::accept();\r
}\r