OSDN Git Service

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