OSDN Git Service

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