OSDN Git Service

設定のリセット処理が抜けていたのを修正
[gefu/Gefu.git] / overwritedialog.cpp
1 #include "preferences.h"\r
2 #include "overwritedialog.h"\r
3 #include "ui_overwritedialog.h"\r
4 \r
5 #include <QDir>\r
6 #include <QMessageBox>\r
7 #include <QDateTime>\r
8 \r
9 OverWriteDialog::OverWriteDialog(QWidget *parent) :\r
10     QDialog(parent),\r
11     ui(new Ui::OverWriteDialog),\r
12     m_tgtPath()\r
13 {\r
14     ui->setupUi(this);\r
15 \r
16     QHeaderView *header = ui->tableWidget->horizontalHeader();\r
17     header->setSectionResizeMode(QHeaderView::ResizeToContents);\r
18     header->setSectionResizeMode(0, QHeaderView::Stretch);\r
19 \r
20     connect(ui->rbAppendNumber, SIGNAL(clicked()), this, SLOT(onRenameOrElse()));\r
21     connect(ui->rbOverWrite, SIGNAL(clicked()), this, SLOT(onRenameOrElse()));\r
22     connect(ui->rbOverWriteIfNew, SIGNAL(clicked()), this, SLOT(onRenameOrElse()));\r
23     connect(ui->rbRename, SIGNAL(clicked()), this, SLOT(onRenameOrElse()));\r
24     connect(ui->rbSkip, SIGNAL(clicked()), this, SLOT(onRenameOrElse()));\r
25 }\r
26 \r
27 OverWriteDialog::~OverWriteDialog()\r
28 {\r
29     delete ui;\r
30 }\r
31 \r
32 void OverWriteDialog::reset()\r
33 {\r
34     QString method = Preferences(this).getCopyBehavior();\r
35     QRadioButton *radio = findChild<QRadioButton*>("rb" + method);\r
36     if (radio == NULL) {\r
37         radio = ui->rbOverWriteIfNew;\r
38     }\r
39     radio->setChecked(true);\r
40     if (radio != ui->rbRename) {\r
41         ui->lineEdit->setEnabled(false);\r
42     }\r
43 \r
44     ui->keepSetting->setChecked(false);\r
45 }\r
46 \r
47 void OverWriteDialog::setFileInfo(const QString srcPath, const QString tgtPath)\r
48 {\r
49     QFileInfo srcInfo(srcPath);\r
50     QFileInfo tgtInfo(tgtPath);\r
51     m_tgtPath = tgtPath;\r
52     ui->lineEdit->setText(tgtInfo.fileName());\r
53 \r
54     QTableWidgetItem *iSrcName = new QTableWidgetItem(srcInfo.fileName());\r
55     iSrcName->setFlags(iSrcName->flags() ^ Qt::ItemIsEditable);\r
56     iSrcName->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);\r
57     ui->tableWidget->setItem(0, 0, iSrcName);\r
58 \r
59     QTableWidgetItem *iTgtName = new QTableWidgetItem(tgtInfo.fileName());\r
60     iTgtName->setFlags(iTgtName->flags() ^ Qt::ItemIsEditable);\r
61     iTgtName->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);\r
62     ui->tableWidget->setItem(1, 0, iTgtName);\r
63 \r
64     QTableWidgetItem *iSrcSize = new QTableWidgetItem(tr("%1 Bytes").arg(srcInfo.size()));\r
65     iSrcSize->setFlags(iSrcSize->flags() ^ Qt::ItemIsEditable);\r
66     iSrcSize->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);\r
67     ui->tableWidget->setItem(0, 1, iSrcSize);\r
68 \r
69     QTableWidgetItem *iTgtSize = new QTableWidgetItem(tr("%1 Bytes").arg(tgtInfo.size()));\r
70     iTgtSize->setFlags(iTgtSize->flags() ^ Qt::ItemIsEditable);\r
71     iTgtSize->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);\r
72     ui->tableWidget->setItem(1, 1, iTgtSize);\r
73 \r
74     QTableWidgetItem *iSrcDate = new QTableWidgetItem(srcInfo.lastModified().toString("yy/MM/dd hh:mm"));\r
75     iSrcDate->setFlags(iSrcDate->flags() ^ Qt::ItemIsEditable);\r
76     iSrcDate->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);\r
77     ui->tableWidget->setItem(0, 2, iSrcDate);\r
78 \r
79     QTableWidgetItem *iTgtDate = new QTableWidgetItem(tgtInfo.lastModified().toString("yy/MM/dd hh:mm"));\r
80     iTgtDate->setFlags(iTgtDate->flags() ^ Qt::ItemIsEditable);\r
81     iTgtDate->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);\r
82     ui->tableWidget->setItem(1, 2, iTgtDate);\r
83 }\r
84 \r
85 QString OverWriteDialog::copyMethod() const\r
86 {\r
87     return ui->method->checkedButton()->objectName();\r
88 }\r
89 \r
90 bool OverWriteDialog::isKeepSetting() const\r
91 {\r
92     return ui->keepSetting->isChecked();\r
93 }\r
94 \r
95 const QString OverWriteDialog::alias() const\r
96 {\r
97     return ui->lineEdit->text();\r
98 }\r
99 \r
100 void OverWriteDialog::onRenameOrElse()\r
101 {\r
102     if (ui->rbRename->isChecked()) {\r
103         ui->lineEdit->setEnabled(true);\r
104     }\r
105     else {\r
106         ui->lineEdit->setEnabled(false);\r
107     }\r
108 }\r
109 \r
110 void OverWriteDialog::accept()\r
111 {\r
112     if (ui->rbRename->isChecked()) {\r
113         QString newPath = QFileInfo(m_tgtPath).absoluteDir().absoluteFilePath(ui->lineEdit->text());\r
114         if (QFileInfo(newPath).exists()) {\r
115             QMessageBox::critical(\r
116                         this,\r
117                         tr("エラー"),\r
118                         tr("すでに同名のファイルが存在しています。"));\r
119             ui->lineEdit->setFocus();\r
120             return;\r
121         }\r
122     }\r
123 \r
124     QDialog::accept();\r
125 }\r