1 #include "preferences.h"
\r
2 #include "overwritedialog.h"
\r
3 #include "ui_overwritedialog.h"
\r
6 #include <QMessageBox>
\r
9 ///////////////////////////////////////////////////////////////////////////////
\r
10 /// \brief OverWriteDialog::OverWriteDialog
\r
11 /// \param parent 親ウィジェット
\r
15 OverWriteDialog::OverWriteDialog(QWidget *parent) :
\r
17 ui(new Ui::OverWriteDialog),
\r
22 QHeaderView *header = ui->tableWidget->horizontalHeader();
\r
23 header->setSectionResizeMode(QHeaderView::ResizeToContents);
\r
24 header->setSectionResizeMode(0, QHeaderView::Stretch);
\r
26 connect(ui->rbAppendNumber, SIGNAL(clicked()), this, SLOT(onRenameOrElse()));
\r
27 connect(ui->rbOverWrite, SIGNAL(clicked()), this, SLOT(onRenameOrElse()));
\r
28 connect(ui->rbOverWriteIfNew, SIGNAL(clicked()), this, SLOT(onRenameOrElse()));
\r
29 connect(ui->rbRename, SIGNAL(clicked()), this, SLOT(onRenameOrElse()));
\r
30 connect(ui->rbSkip, SIGNAL(clicked()), this, SLOT(onRenameOrElse()));
\r
33 ///////////////////////////////////////////////////////////////////////////////
\r
34 /// \brief OverWriteDialog::~OverWriteDialog
\r
38 OverWriteDialog::~OverWriteDialog()
\r
43 ///////////////////////////////////////////////////////////////////////////////
\r
44 /// \brief OverWriteDialog::reset
\r
48 void OverWriteDialog::reset()
\r
50 QString method = Preferences(this).getCopyBehavior();
\r
51 QRadioButton *radio = findChild<QRadioButton*>("rb" + method);
\r
52 if (radio == NULL) {
\r
53 radio = ui->rbOverWriteIfNew;
\r
55 radio->setChecked(true);
\r
56 if (radio != ui->rbRename) {
\r
57 ui->lineEdit->setEnabled(false);
\r
60 ui->keepSetting->setChecked(false);
\r
63 ///////////////////////////////////////////////////////////////////////////////
\r
64 /// \brief OverWriteDialog::setFileInfo
\r
65 /// \param srcPath ソースパス
\r
66 /// \param tgtPath ターゲットパス
\r
68 /// ソース・ターゲットの情報を設定します。
\r
70 void OverWriteDialog::setFileInfo(const QString srcPath, const QString tgtPath)
\r
72 QFileInfo srcInfo(srcPath);
\r
73 QFileInfo tgtInfo(tgtPath);
\r
74 m_tgtPath = tgtPath;
\r
75 ui->lineEdit->setText(tgtInfo.fileName());
\r
77 QTableWidgetItem *iSrcName = new QTableWidgetItem(srcInfo.fileName());
\r
78 iSrcName->setFlags(iSrcName->flags() ^ Qt::ItemIsEditable);
\r
79 iSrcName->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);
\r
80 ui->tableWidget->setItem(0, 0, iSrcName);
\r
82 QTableWidgetItem *iTgtName = new QTableWidgetItem(tgtInfo.fileName());
\r
83 iTgtName->setFlags(iTgtName->flags() ^ Qt::ItemIsEditable);
\r
84 iTgtName->setTextAlignment(Qt::AlignLeft | Qt::AlignVCenter);
\r
85 ui->tableWidget->setItem(1, 0, iTgtName);
\r
87 QTableWidgetItem *iSrcSize = new QTableWidgetItem(tr("%1 Bytes").arg(srcInfo.size()));
\r
88 iSrcSize->setFlags(iSrcSize->flags() ^ Qt::ItemIsEditable);
\r
89 iSrcSize->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);
\r
90 ui->tableWidget->setItem(0, 1, iSrcSize);
\r
92 QTableWidgetItem *iTgtSize = new QTableWidgetItem(tr("%1 Bytes").arg(tgtInfo.size()));
\r
93 iTgtSize->setFlags(iTgtSize->flags() ^ Qt::ItemIsEditable);
\r
94 iTgtSize->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);
\r
95 ui->tableWidget->setItem(1, 1, iTgtSize);
\r
97 QTableWidgetItem *iSrcDate = new QTableWidgetItem(srcInfo.lastModified().toString("yy/MM/dd hh:mm"));
\r
98 iSrcDate->setFlags(iSrcDate->flags() ^ Qt::ItemIsEditable);
\r
99 iSrcDate->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);
\r
100 ui->tableWidget->setItem(0, 2, iSrcDate);
\r
102 QTableWidgetItem *iTgtDate = new QTableWidgetItem(tgtInfo.lastModified().toString("yy/MM/dd hh:mm"));
\r
103 iTgtDate->setFlags(iTgtDate->flags() ^ Qt::ItemIsEditable);
\r
104 iTgtDate->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);
\r
105 ui->tableWidget->setItem(1, 2, iTgtDate);
\r
108 ///////////////////////////////////////////////////////////////////////////////
\r
109 /// \brief OverWriteDialog::copyMethod
\r
110 /// \return 選択されているコピー方法を返します。
\r
112 QString OverWriteDialog::copyMethod() const
\r
114 return ui->method->checkedButton()->objectName();
\r
117 ///////////////////////////////////////////////////////////////////////////////
\r
118 /// \brief OverWriteDialog::isKeepSetting
\r
119 /// \return 同じ処理を行うかのチェック状態を返します。
\r
121 bool OverWriteDialog::isKeepSetting() const
\r
123 return ui->keepSetting->isChecked();
\r
126 ///////////////////////////////////////////////////////////////////////////////
\r
127 /// \brief OverWriteDialog::alias
\r
128 /// \return 別名を返します。
\r
130 const QString OverWriteDialog::alias() const
\r
132 return ui->lineEdit->text();
\r
135 ///////////////////////////////////////////////////////////////////////////////
\r
136 /// \brief OverWriteDialog::onRenameOrElse
\r
138 /// 別名の活性・非活性を切り替えます。
\r
140 void OverWriteDialog::onRenameOrElse()
\r
142 if (ui->rbRename->isChecked()) {
\r
143 ui->lineEdit->setEnabled(true);
\r
146 ui->lineEdit->setEnabled(false);
\r
150 ///////////////////////////////////////////////////////////////////////////////
\r
151 /// \brief OverWriteDialog::accept
\r
153 /// OKボタンクリック時の処理を行います。
\r
155 void OverWriteDialog::accept()
\r
157 if (ui->rbRename->isChecked()) {
\r
158 QString newPath = QFileInfo(m_tgtPath).absoluteDir().absoluteFilePath(ui->lineEdit->text());
\r
159 if (QFileInfo(newPath).exists()) {
\r
160 QMessageBox::critical(
\r
163 tr("すでに同名のファイルが存在しています。"));
\r
164 ui->lineEdit->setFocus();
\r