#include <QDir>
#include <QFileDialog>
#include <QStandardPaths>
+#include <QFontDialog>
PreferenceDialog::PreferenceDialog(QWidget *parent) :
QDialog(parent),
ui->setupUi(this);
ui->tabWidget->setCurrentIndex(0);
+ // アドレスボックスの外観サンプル
ui->sampleEdit->setText(QDir::homePath());
+ // ファイルビューの外観サンプル
ui->sampleTable->setModel(&m_model);
- ui->sampleTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
- ui->sampleTable->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
+ QHeaderView *header;
+ header = ui->sampleTable->horizontalHeader();
+ header->setSectionResizeMode(0, QHeaderView::Stretch);
+ header->setSectionResizeMode(1, QHeaderView::ResizeToContents);
+ header->setSectionResizeMode(2, QHeaderView::ResizeToContents);
+ header = ui->sampleTable->verticalHeader();
+ header->setDefaultSectionSize(header->defaultSectionSize() * 0.75);
+
+ // シグナル&スロット
connect(ui->bootSize, SIGNAL(toggled(bool)), this, SLOT(setControlsEnabled(bool)));
connect(ui->sizeAbsolute, SIGNAL(toggled(bool)), this, SLOT(setControlsEnabled(bool)));
connect(ui->sizeRelative, SIGNAL(toggled(bool)), this, SLOT(setControlsEnabled(bool)));
connect(ui->clrFgReadonly, SIGNAL(clicked()), this, SLOT(selectViewColor()));
connect(ui->clrFgSystem, SIGNAL(clicked()), this, SLOT(selectViewColor()));
- connect(ui->boxFont, SIGNAL(currentFontChanged(QFont)), this, SLOT(changeFont()));
- connect(ui->boxFontBold, SIGNAL(clicked()), this, SLOT(changeFont()));
- connect(ui->boxFontSize, SIGNAL(valueChanged(int)), this, SLOT(changeFont()));
-
- connect(ui->viewFont, SIGNAL(currentFontChanged(QFont)), this, SLOT(changeFont()));
- connect(ui->viewFontBold, SIGNAL(clicked()), this, SLOT(changeFont()));
- connect(ui->viewFontSize, SIGNAL(valueChanged(int)), this, SLOT(changeFont()));
+ connect(ui->chooseBoxFont, SIGNAL(clicked()), this, SLOT(chooseFont()));
+ connect(ui->chooseViewFont, SIGNAL(clicked()), this, SLOT(chooseFont()));
connect(ui->importAppearance, SIGNAL(clicked()), this, SLOT(importAppearance()));
connect(ui->exportAppearance, SIGNAL(clicked()), this, SLOT(exportAppearance()));
connect(ui->termBrowse, SIGNAL(clicked()), this, SLOT(browseApp()));
connect(ui->editorBrowse, SIGNAL(clicked()), this, SLOT(browseApp()));
+ connect(ui->chooseViewerFont, SIGNAL(clicked()), this, SLOT(chooseFont()));
+ connect(ui->viewerClrBg, SIGNAL(clicked()), this, SLOT(selectViewerColor()));
+ connect(ui->viewerClrFg, SIGNAL(clicked()), this, SLOT(selectViewerColor()));
+ connect(ui->viewerInherit, SIGNAL(toggled(bool)), this, SLOT(setControlsEnabled(bool)));
+ connect(ui->enableViewerIgnoreExt, SIGNAL(toggled(bool)), this, SLOT(setControlsEnabled(bool)));
+ connect(ui->defaultIgnoreExt, SIGNAL(clicked()), this, SLOT(setIgnoreExtDefault()));
+
+ // 現在の設定で各コントロールを初期化する
QSettings settings;
QString strValue;
QSize size;
// 終了時の確認ダイアログ
ui->confirmExit->setChecked(settings.value(IniKey_ConfirmExit).toBool());
// 起動時のサイズ
+ ui->bootSize->setChecked(true);
strValue = settings.value(IniKey_BootSizeSpec).toString();
+ radioBtn = findChild<QRadioButton*>(strValue);
+ if (radioBtn == NULL) {
+ radioBtn = ui->sizeRelative;
+ }
+ radioBtn->setChecked(true);
if (strValue.isEmpty()) {
ui->bootSize->setChecked(false);
}
- else {
- ui->bootSize->setChecked(true);
- radioBtn = findChild<QRadioButton*>(strValue);
- if (radioBtn == NULL) {
- radioBtn = ui->sizeLast;
- }
- radioBtn->setChecked(true);
- }
size = settings.value(IniKey_BootSizeAbs).toSize();
ui->absoluteWidth->setValue(size.width());
ui->absoluteHeight->setValue(size.height());
ui->relativeWidth->setValue(size.width());
ui->relativeHeight->setValue(size.height());
// 起動時の位置
+ ui->bootPos->setChecked(true);
strValue = settings.value(IniKey_BootPosSpec).toString();
+ radioBtn = findChild<QRadioButton*>(strValue);
+ if (radioBtn == NULL) {
+ radioBtn = ui->posCenter;
+ }
+ radioBtn->setChecked(true);
if (strValue.isEmpty()) {
ui->bootPos->setChecked(false);
}
- else {
- ui->bootPos->setChecked(true);
- radioBtn = findChild<QRadioButton*>(strValue);
- if (radioBtn == NULL) {
- radioBtn = ui->posLast;
- }
- radioBtn->setChecked(true);
- }
point = settings.value(IniKey_BootPosAbs).toPoint();
ui->absoluteLeft->setValue(point.x());
ui->absoluteTop->setValue(point.y());
// 起動時の設定削除
ui->resetOnBoot->setChecked(settings.value(IniKey_ResetOnBoot).toBool());
- //>>>>> 色とフォント
- loadAppearance(settings);
+ //>>>>> 色とフォント、テキストビューア
+ loadAppearance(settings, false);
//>>>>> ファイル操作
// 確認ダイアログの表示
// ターミナル
ui->termOpt->setText(settings.value(IniKey_TerminalOption).toString());
ui->termPath->setText(settings.value(IniKey_TerminalPath).toString());
+
+ //>>>>> テキストビューア
+ ui->enableViewerIgnoreExt->setChecked(true);
+ ui->enableViewerIgnoreExt->setChecked(!settings.value(IniKey_ViewerForceOpen).toBool());
+ ui->viewerIgnoreExt->setPlainText(settings.value(IniKey_ViewerIgnoreExt).toString());
}
PreferenceDialog::~PreferenceDialog()
settings.setValue(IniKey_ViewFont, m_model.font());
}
-void PreferenceDialog::loadAppearance(QSettings &settings)
+void PreferenceDialog::loadAppearance(QSettings &settings, bool import)
{
QPalette palette;
QColor color;
palette.setColor(QPalette::Text, color);
// フォント
font = settings.value(IniKey_BoxFont).value<QFont>();
- ui->boxFont->setCurrentText(font.family());
- ui->boxFontBold->setChecked(font.bold());
- ui->boxFontSize->setValue(font.pointSize());
+ ui->boxFont->setText(tr("%1, %2pt").arg(font.family()).arg(font.pointSize()));
// サンプル表示
ui->sampleEdit->setPalette(palette);
ui->sampleEdit->setFont(font);
+
//>>>> ファイルビュー
// 背景色
color = settings.value(IniKey_ViewColorBgMark).value<QColor>();
m_colorMap["clrFgSystem"] = color;
// フォント
font = settings.value(IniKey_ViewFont).value<QFont>();
- ui->viewFont->setCurrentText(font.family());
- ui->viewFontBold->setChecked(font.bold());
- ui->viewFontSize->setValue(font.pointSize());
+ ui->viewFont->setText(tr("%1, %2pt").arg(font.family()).arg(font.pointSize()));
// サンプル表示
m_model.setFont(font);
m_model.update();
+ //>>>> テキストビューア
+ // 文字色と背景色
+ if (settings.value(IniKey_ViewerInherit).toBool()) {
+ ui->viewerInherit->setChecked(true);
+ color = settings.value(IniKey_ViewColorBgNormal).value<QColor>();
+ palette.setColor(QPalette::Base, color);
+ color = settings.value(IniKey_ViewColorFgNormal).value<QColor>();
+ palette.setColor(QPalette::Text, color);
+ }
+ else if (!import){
+ ui->viewerInherit->setChecked(false);
+ color = settings.value(IniKey_ViewerColorBg).value<QColor>();
+ palette.setColor(QPalette::Base, color);
+ color = settings.value(IniKey_ViewerColorFg).value<QColor>();
+ palette.setColor(QPalette::Text, color);
+ }
+ ui->viewerSample->setPalette(palette);
+ // フォント
+ if (!import) {
+ font = settings.value(IniKey_ViewerFont).value<QFont>();
+ ui->viewerFont->setText(tr("%1, %2pt").arg(font.family()).arg(font.pointSize()));
+ ui->viewerSample->setFont(font);
+ }
}
-void PreferenceDialog::changeFont()
+void PreferenceDialog::chooseFont()
{
+ bool ok;
QFont font;
+ QLabel *label = NULL;
+
+ if (sender() == ui->chooseViewerFont) {
+ font = ui->viewerSample->font();
+ }
+ else if (sender() == ui->chooseBoxFont) {
+ font = ui->sampleEdit->font();
+ }
+ else if (sender() == ui->chooseViewFont) {
+ font = m_model.font();
+ }
+
+ font = QFontDialog::getFont(&ok, font, this);
- if (sender() == ui->boxFont ||
- sender() == ui->boxFontBold ||
- sender() == ui->boxFontSize)
- {
- font.setBold(ui->boxFontBold->isChecked());
- font.setPointSize(ui->boxFontSize->value());
- font.setFamily(ui->boxFont->currentText());
+ if (sender() == ui->chooseViewerFont) {
+ ui->viewerSample->setFont(font);
+ label = ui->viewerFont;
+ }
+ else if (sender() == ui->chooseBoxFont) {
ui->sampleEdit->setFont(font);
+ label = ui->boxFont;
}
- else {
- font.setBold(ui->viewFontBold->isChecked());
- font.setPointSize(ui->viewFontSize->value());
- font.setFamily(ui->viewFont->currentText());
+ else if (sender() == ui->chooseViewFont) {
m_model.setFont(font);
m_model.update();
+ label = ui->viewFont;
}
+ label->setText(tr("%1, %2pt").arg(font.family()).arg(font.pointSize()));
+
}
void PreferenceDialog::setControlsEnabled(bool enabled)
ui->relativeLeft->setEnabled(enabled);
ui->relativeTop->setEnabled(enabled);
}
+ else if (sender() == ui->viewerInherit) {
+ ui->viewerClrBg->setEnabled(!enabled);
+ ui->viewerClrFg->setEnabled(!enabled);
+ }
+ else if (sender() == ui->enableViewerIgnoreExt) {
+ ui->viewerIgnoreExt->setEnabled(enabled);
+ }
+}
+
+void PreferenceDialog::setIgnoreExtDefault()
+{
+ ui->viewerIgnoreExt->setPlainText(ViewerIgnoreExt());
}
void PreferenceDialog::selectBoxColor()
if (sender() == ui->boxClrBg) {
palette.setColor(QPalette::Base, color);
- ui->sampleEdit->setPalette(palette);
}
else if (sender() == ui->boxClrFg) {
palette.setColor(QPalette::Text, color);
- ui->sampleEdit->setPalette(palette);
}
+ ui->sampleEdit->setPalette(palette);
}
void PreferenceDialog::selectViewColor()
m_model.update();
}
+void PreferenceDialog::selectViewerColor()
+{
+ QColor color;
+ QPalette palette = ui->viewerSample->palette();
+ if (sender() == ui->viewerClrBg) {
+ color = palette.background().color();
+ }
+ else if (sender() == ui->viewerClrFg) {
+ color = palette.text().color();
+ }
+
+ color = QColorDialog::getColor(color, this, tr("色選択"));
+ if (!color.isValid()) {
+ return;
+ }
+
+ if (sender() == ui->viewerClrBg) {
+ palette.setColor(QPalette::Base, color);
+ }
+ else if (sender() == ui->viewerClrFg) {
+ palette.setColor(QPalette::Text, color);
+ }
+ ui->viewerSample->setPalette(palette);
+}
+
void PreferenceDialog::browseApp()
{
QStringList list = QStandardPaths::standardLocations(
}
QSettings settings(path, QSettings::IniFormat);
- loadAppearance(settings);
+ loadAppearance(settings, true);
}
void PreferenceDialog::exportAppearance()
settings.setValue(IniKey_TerminalOption, ui->termOpt->text().trimmed());
settings.setValue(IniKey_TerminalPath, ui->termPath->text().trimmed());
+ //>>>>> テキストビューア
+ settings.setValue(IniKey_ViewerFont, ui->viewerSample->font());
+ settings.setValue(IniKey_ViewerColorBg, ui->viewerSample->palette().base().color());
+ settings.setValue(IniKey_ViewerColorFg, ui->viewerSample->palette().text().color());
+ settings.setValue(IniKey_ViewerInherit, ui->viewerInherit->isChecked());
+ settings.setValue(IniKey_ViewerForceOpen, !ui->enableViewerIgnoreExt->isChecked());
+ QStringList list = ui->viewerIgnoreExt->toPlainText().split(",", QString::SkipEmptyParts);
+ QStringList::iterator it;
+ for (it = list.begin(); it != list.end(); it++) {
+ *it = it->trimmed();
+ }
+ settings.setValue(IniKey_ViewerIgnoreExt, list.join(","));
+
QDialog::accept();
}
<rect>
<x>0</x>
<y>0</y>
- <width>631</width>
- <height>569</height>
+ <width>549</width>
+ <height>478</height>
</rect>
</property>
<property name="sizePolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="currentIndex">
- <number>0</number>
+ <number>4</number>
</property>
<widget class="QWidget" name="tabBoot_Exit">
<attribute name="title">
<string>起動と終了</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QCheckBox" name="bootSize">
<property name="focusPolicy">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="spacing">
- <number>6</number>
+ <number>4</number>
</property>
<property name="sizeConstraint">
<enum>QLayout::SetFixedSize</enum>
</property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QLabel" name="label_3">
<property name="text">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QLabel" name="label_4">
<property name="text">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_6">
+ <property name="spacing">
+ <number>4</number>
+ </property>
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QLabel" name="label_5">
<property name="text">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QLabel" name="label_7">
<property name="text">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_7">
+ <property name="spacing">
+ <number>4</number>
+ </property>
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_12">
<property name="spacing">
- <number>6</number>
+ <number>4</number>
</property>
<property name="sizeConstraint">
<enum>QLayout::SetFixedSize</enum>
</property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_13">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QLabel" name="label_13">
<property name="text">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_14">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QLabel" name="label_15">
<property name="text">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_9">
+ <property name="spacing">
+ <number>4</number>
+ </property>
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_10">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QLabel" name="label_9">
<property name="text">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_11">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QLabel" name="label_11">
<property name="text">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_15">
+ <property name="spacing">
+ <number>4</number>
+ </property>
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_8">
+ <property name="spacing">
+ <number>4</number>
+ </property>
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<string>色とフォント</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_6">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>アドレスボックス</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_16">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QLabel" name="label_17">
<property name="text">
- <string>フォント</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QFontComboBox" name="boxFont">
- <property name="editable">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="boxFontSize">
- <property name="minimum">
- <number>1</number>
+ <string>フォント:</string>
</property>
</widget>
</item>
<item>
- <widget class="QLabel" name="label_18">
+ <widget class="QLabel" name="boxFont">
<property name="text">
- <string>pt</string>
+ <string>font family, point</string>
</property>
</widget>
</item>
<item>
- <widget class="QCheckBox" name="boxFontBold">
+ <widget class="QPushButton" name="chooseBoxFont">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
- <string>太字</string>
+ <string>選択</string>
</property>
</widget>
</item>
</property>
</spacer>
</item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_17">
<item>
<widget class="QPushButton" name="boxClrFg">
<property name="sizePolicy">
</property>
</widget>
</item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_17">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QLineEdit" name="sampleEdit">
<property name="text">
<string>ファイルビュー</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_21">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QLabel" name="label_23">
<property name="text">
- <string>フォント</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QFontComboBox" name="viewFont"/>
- </item>
- <item>
- <widget class="QSpinBox" name="viewFontSize">
- <property name="minimum">
- <number>1</number>
+ <string>フォント:</string>
</property>
</widget>
</item>
<item>
- <widget class="QLabel" name="label_24">
+ <widget class="QLabel" name="viewFont">
<property name="text">
- <string>pt</string>
+ <string>font family, point</string>
</property>
</widget>
</item>
<item>
- <widget class="QCheckBox" name="viewFontBold">
+ <widget class="QPushButton" name="chooseViewFont">
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="text">
- <string>太字</string>
+ <string>選択</string>
</property>
</widget>
</item>
</property>
</spacer>
</item>
+ <item>
+ <widget class="QPushButton" name="clrFgNormal">
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="text">
+ <string>文字色</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="clrBgNormal">
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="text">
+ <string>背景色</string>
+ </property>
+ </widget>
+ </item>
</layout>
</item>
<item>
- <layout class="QHBoxLayout" name="horizontalLayout_23">
+ <layout class="QHBoxLayout" name="horizontalLayout_18">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
- <layout class="QHBoxLayout" name="horizontalLayout_22">
- <item>
- <layout class="QVBoxLayout" name="verticalLayout_4">
- <item>
- <widget class="QGroupBox" name="groupBox_3">
- <property name="title">
- <string>文字色</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_3">
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_19">
- <item>
- <widget class="QPushButton" name="clrFgNormal">
- <property name="focusPolicy">
- <enum>Qt::StrongFocus</enum>
- </property>
- <property name="text">
- <string>通常</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="clrFgMark">
- <property name="focusPolicy">
- <enum>Qt::StrongFocus</enum>
- </property>
- <property name="text">
- <string>マーク</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_20">
- <item>
- <widget class="QPushButton" name="clrFgSystem">
- <property name="focusPolicy">
- <enum>Qt::StrongFocus</enum>
- </property>
- <property name="text">
- <string>システム</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="clrFgHidden">
- <property name="focusPolicy">
- <enum>Qt::StrongFocus</enum>
- </property>
- <property name="text">
- <string>隠し属性</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="clrFgReadonly">
- <property name="focusPolicy">
- <enum>Qt::StrongFocus</enum>
- </property>
- <property name="text">
- <string>読取専用</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_4">
- <property name="title">
- <string>背景色</string>
- </property>
- <layout class="QHBoxLayout" name="horizontalLayout_18">
- <item>
- <widget class="QPushButton" name="clrBgNormal">
- <property name="focusPolicy">
- <enum>Qt::StrongFocus</enum>
- </property>
- <property name="text">
- <string>通常</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="clrBgMark">
- <property name="focusPolicy">
- <enum>Qt::StrongFocus</enum>
- </property>
- <property name="text">
- <string>マーク</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
+ <widget class="QGroupBox" name="groupBox_3">
+ <property name="title">
+ <string>文字色</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_19">
+ <item>
+ <widget class="QPushButton" name="clrFgSystem">
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="text">
+ <string>システム</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="clrFgMark">
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="text">
+ <string>マーク</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="clrFgHidden">
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="text">
+ <string>隠し属性</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="clrFgReadonly">
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="text">
+ <string>読取専用</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
</item>
<item>
- <widget class="QTableView" name="sampleTable">
- <property name="sizePolicy">
- <sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>200</width>
- <height>0</height>
- </size>
- </property>
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
+ <widget class="QGroupBox" name="groupBox_4">
+ <property name="title">
+ <string>背景色</string>
</property>
- <attribute name="horizontalHeaderVisible">
- <bool>false</bool>
- </attribute>
- <attribute name="verticalHeaderVisible">
- <bool>false</bool>
- </attribute>
+ <layout class="QHBoxLayout" name="horizontalLayout_20">
+ <item>
+ <widget class="QPushButton" name="clrBgMark">
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="text">
+ <string>マーク</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</widget>
</item>
</layout>
</item>
+ <item>
+ <widget class="QTableView" name="sampleTable">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>110</height>
+ </size>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::NoFocus</enum>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::SingleSelection</enum>
+ </property>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ <property name="textElideMode">
+ <enum>Qt::ElideMiddle</enum>
+ </property>
+ <property name="showGrid">
+ <bool>false</bool>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <attribute name="horizontalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ </widget>
+ </item>
</layout>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_28">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QPushButton" name="importAppearance">
<property name="focusPolicy">
<string>ファイル操作</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_8">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QGroupBox" name="groupBox_5">
<property name="title">
<string>操作の開始時、確認ダイアログを表示する</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_24">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QCheckBox" name="confirmCopy">
<property name="focusPolicy">
<string>操作の成功時、進捗ダイアログを自動で閉じる</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_25">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<widget class="QCheckBox" name="autoCloseCopy">
<property name="focusPolicy">
<string>同名ファイル存在時の既定の動作</string>
</property>
<layout class="QGridLayout" name="gridLayout">
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
+ <property name="spacing">
+ <number>4</number>
+ </property>
<item row="0" column="0">
<widget class="QRadioButton" name="owDefOverWrite">
<property name="focusPolicy">
<string>パス設定</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_20">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<layout class="QVBoxLayout" name="verticalLayout_9">
<property name="spacing">
- <number>0</number>
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_27">
<property name="spacing">
- <number>-1</number>
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
</property>
<item>
<widget class="QLabel" name="label_19">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_26">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<spacer name="horizontalSpacer_16">
<property name="orientation">
<item>
<layout class="QVBoxLayout" name="verticalLayout_10">
<property name="spacing">
- <number>0</number>
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
</property>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_55">
<property name="spacing">
- <number>-1</number>
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
</property>
<item>
<widget class="QLabel" name="label_45">
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_56">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
<item>
<spacer name="horizontalSpacer_33">
<property name="orientation">
<zorder></zorder>
<zorder>optExplain</zorder>
</widget>
+ <widget class="QWidget" name="tab_3">
+ <attribute name="title">
+ <string>テキストビューア</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout_13">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
+ <item>
+ <widget class="QGroupBox" name="groupBox_8">
+ <property name="title">
+ <string>外観</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_12">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_29">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_21">
+ <property name="text">
+ <string>フォント:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="viewerFont">
+ <property name="text">
+ <string>font family, point</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="chooseViewerFont">
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="text">
+ <string>選択</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_18">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="viewerClrFg">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="text">
+ <string>文字色</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="viewerClrBg">
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ <property name="text">
+ <string>背景色</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_30">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
+ <item>
+ <spacer name="horizontalSpacer_19">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="viewerInherit">
+ <property name="text">
+ <string>文字色と背景色はファイルビューを継承</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QPlainTextEdit" name="viewerSample">
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ <property name="plainText">
+ <string>01234567890
+abcdefghijklmnopqrstuvwxyz
+ABCDEFGHIJKLMNOPQRSTUVWXYZ
+!"#$%&'()+-*=^~¥|@`[]{}<>;:,./?_
+あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_11">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_31">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
+ <item>
+ <widget class="QCheckBox" name="enableViewerIgnoreExt">
+ <property name="text">
+ <string>以下の拡張子は、外部アプリを優先する</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_21">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="defaultIgnoreExt">
+ <property name="text">
+ <string>デフォルトに戻す</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_32">
+ <property name="spacing">
+ <number>4</number>
+ </property>
+ <property name="leftMargin">
+ <number>4</number>
+ </property>
+ <property name="topMargin">
+ <number>4</number>
+ </property>
+ <property name="rightMargin">
+ <number>4</number>
+ </property>
+ <property name="bottomMargin">
+ <number>4</number>
+ </property>
+ <item>
+ <spacer name="horizontalSpacer_20">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>13</width>
+ <height>17</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPlainTextEdit" name="viewerIgnoreExt">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>100</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_5">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>3</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
</widget>
</item>
<item>
</layout>
</widget>
<tabstops>
+ <tabstop>tabWidget</tabstop>
<tabstop>bootSize</tabstop>
<tabstop>sizeAbsolute</tabstop>
<tabstop>absoluteWidth</tabstop>
<tabstop>posCenter</tabstop>
<tabstop>posLast</tabstop>
<tabstop>resetOnBoot</tabstop>
- <tabstop>boxFont</tabstop>
- <tabstop>boxFontSize</tabstop>
- <tabstop>boxFontBold</tabstop>
+ <tabstop>confirmExit</tabstop>
+ <tabstop>chooseBoxFont</tabstop>
<tabstop>boxClrFg</tabstop>
<tabstop>boxClrBg</tabstop>
<tabstop>sampleEdit</tabstop>
- <tabstop>viewFont</tabstop>
- <tabstop>viewFontSize</tabstop>
- <tabstop>viewFontBold</tabstop>
+ <tabstop>chooseViewFont</tabstop>
<tabstop>clrFgNormal</tabstop>
- <tabstop>clrFgMark</tabstop>
+ <tabstop>clrBgNormal</tabstop>
<tabstop>clrFgSystem</tabstop>
+ <tabstop>clrFgMark</tabstop>
<tabstop>clrFgHidden</tabstop>
<tabstop>clrFgReadonly</tabstop>
- <tabstop>clrBgNormal</tabstop>
<tabstop>clrBgMark</tabstop>
+ <tabstop>importAppearance</tabstop>
+ <tabstop>exportAppearance</tabstop>
+ <tabstop>confirmCopy</tabstop>
+ <tabstop>confirmMove</tabstop>
+ <tabstop>confirmDelete</tabstop>
+ <tabstop>confirmRename</tabstop>
+ <tabstop>autoCloseCopy</tabstop>
+ <tabstop>autoCloseMove</tabstop>
+ <tabstop>autoCloseDelete</tabstop>
+ <tabstop>autoCloseRename</tabstop>
+ <tabstop>owDefOverWrite</tabstop>
+ <tabstop>owDefIfNew</tabstop>
+ <tabstop>owDefSkip</tabstop>
+ <tabstop>owDefAppendNumber</tabstop>
+ <tabstop>owDefRename</tabstop>
+ <tabstop>moveAfterCreate</tabstop>
+ <tabstop>openAfterCreate</tabstop>
+ <tabstop>editorPath</tabstop>
+ <tabstop>editorBrowse</tabstop>
+ <tabstop>editorOpt</tabstop>
+ <tabstop>termPath</tabstop>
+ <tabstop>termBrowse</tabstop>
+ <tabstop>termOpt</tabstop>
+ <tabstop>optExplain</tabstop>
+ <tabstop>chooseViewerFont</tabstop>
+ <tabstop>viewerClrFg</tabstop>
+ <tabstop>viewerClrBg</tabstop>
+ <tabstop>viewerInherit</tabstop>
+ <tabstop>viewerSample</tabstop>
+ <tabstop>enableViewerIgnoreExt</tabstop>
+ <tabstop>defaultIgnoreExt</tabstop>
+ <tabstop>viewerIgnoreExt</tabstop>
+ <tabstop>buttonBox</tabstop>
+ <tabstop>checkUpdates</tabstop>
</tabstops>
<resources/>
<connections>
</connection>
</connections>
<buttongroups>
- <buttongroup name="sizeOptions"/>
<buttongroup name="overwriteOptions"/>
<buttongroup name="posOptions"/>
+ <buttongroup name="sizeOptions"/>
</buttongroups>
</ui>
#include <QSettings>
#include <QShortcut>
#include <QTextCodec>
+#include <QStatusBar>
SimpleTextView::SimpleTextView(QWidget *parent) :
QPlainTextEdit(parent),
m_convJIS = new QAction(tr("ISO 2022-JP(JIS)で再読込"), this);
m_convSJIS = new QAction(tr("Shift-JISで再読込"), this);
m_convUTF8 = new QAction(tr("UTF-8で再読込"), this);
+ m_convUTF16 = new QAction(tr("UTF-16で再読込"), this);
m_convUTF16BE = new QAction(tr("UTF-16BEで再読込"), this);
m_convUTF16LE = new QAction(tr("UTF-16LEで再読込"), this);
m_back = new QAction(tr("戻る"), this);
m_convJIS->setShortcut(QKeySequence("J"));
m_convSJIS->setShortcut(QKeySequence("S"));
m_convUTF8->setShortcut(QKeySequence("U"));
- m_convUTF16BE->setShortcut(QKeySequence("B"));
- m_convUTF16LE->setShortcut(QKeySequence("L"));
+ m_convUTF8->setShortcut(QKeySequence("I"));
+ m_convUTF16BE->setShortcut(QKeySequence("J"));
+ m_convUTF16LE->setShortcut(QKeySequence("N"));
m_back->setShortcut(QKeySequence("Return"));
connect(m_convEUC, SIGNAL(triggered()), this, SLOT(convertFromEUC()));
connect(m_convJIS, SIGNAL(triggered()), this, SLOT(convertFromJIS()));
connect(m_convSJIS, SIGNAL(triggered()), this, SLOT(convertFromSJIS()));
connect(m_convUTF8, SIGNAL(triggered()), this, SLOT(convertFromUTF8()));
+ connect(m_convUTF16, SIGNAL(triggered()), this, SLOT(convertFromUTF16()));
connect(m_convUTF16BE, SIGNAL(triggered()), this, SLOT(convertFromUTF16BE()));
connect(m_convUTF16LE, SIGNAL(triggered()), this, SLOT(convertFromUTF16LE()));
connect(m_back, SIGNAL(triggered()), this, SLOT(back()));
void SimpleTextView::setSource(const QByteArray &source)
{
m_source = source;
-#ifdef Q_OS_MAC
- convertFromUTF8();
+
+ // BOMで文字コードを判別する
+ const char UTF8_BOM[] = { 0xEF, 0xBB, 0xBF };
+ const char UTF16BE_BOM[] = { 0xFE, 0xFF };
+ const char UTF16LE_BOM[] = { 0xFF, 0xFE };
+
+ if (m_source.indexOf(QByteArray(UTF8_BOM)) == 0) {
+ qDebug() << "Detect UTF-8 BOM";
+ convertFromUTF8();
+ }
+ else if (m_source.indexOf(QByteArray(UTF16BE_BOM)) == 0 ||
+ m_source.indexOf(QByteArray(UTF16LE_BOM)) == 0)
+ {
+ qDebug() << "Detect UTF-16 BOM";
+ convertFromUTF16();
+ }
+
+ QByteArray first1KB = m_source.left(1024);
+ // 文字コードを示す文字列で判別する
+ QTextCodec *codec = QTextCodec::codecForName("UTF-8");
+ QString text = codec->toUnicode(first1KB).toLower();
+ if (text.indexOf("utf8") != -1 || text.indexOf("utf-8") != -1) {
+ convertFromUTF8();
+ return;
+ }
+ if (text.indexOf("sjis") != -1 || text.indexOf("shift-jis") != -1 ||
+ text.indexOf("shift_jis") != -1)
+ {
+ convertFromSJIS();
+ return;
+ }
+ if (text.indexOf("euc") != -1 || text.indexOf("euc-jp") != -1 ||
+ text.indexOf("euc_jp") != -1)
+ {
+ convertFromEUC();
+ return;
+ }
+ if (text.indexOf("jis") != -1 || text.indexOf("iso 2022-jp") != -1) {
+ convertFromJIS();
+ return;
+ }
+
+ std::string code = detectCode(first1KB);
+ codec = QTextCodec::codecForName(code.c_str());
+ setPlainText(codec->toUnicode(m_source));
+ getMainWnd()->statusBar()->showMessage(code.c_str());
+}
+
+// http://dobon.net/vb/dotnet/string/detectcode.html より拝借
+std::string SimpleTextView::detectCode(const QByteArray &bytes)
+{
+ typedef unsigned char byte;
+ const byte bEscape = 0x1B;
+ const byte bAt = 0x40;
+ const byte bDollar = 0x24;
+ const byte bAnd = 0x26;
+ const byte bOpen = 0x28; //'('
+ const byte bB = 0x42;
+ const byte bD = 0x44;
+ const byte bJ = 0x4A;
+ const byte bI = 0x49;
+
+ int len = bytes.size();
+ byte b1, b2, b3, b4;
+
+ bool isBinary = false;
+ for (int i = 0; i < len; i++) {
+ b1 = bytes[i];
+ if (b1 <= 0x06 || b1 == 0x7F || b1 == 0xFF) {
+ //'binary'
+ isBinary = true;
+ if (b1 == 0x00 && i < len - 1 && bytes[i + 1] <= 0x7F) {
+ return "UTF-16LE";
+ }
+ }
+ }
+ if (isBinary) {
+ return "UTF-8";
+ }
+
+ bool notJapanese = true;
+ for (int i = 0; i < len; i++) {
+ b1 = bytes[i];
+ if (b1 == bEscape || 0x80 <= b1) {
+ notJapanese = false;
+ break;
+ }
+ }
+ if (notJapanese) {
+ return "UTF-8";
+ }
+
+ for (int i = 0; i < len - 2; i++) {
+ b1 = bytes[i];
+ b2 = bytes[i + 1];
+ b3 = bytes[i + 2];
+
+ if (b1 == bEscape){
+ if ((b2 == bDollar && b3 == bAt) ||
+ (b2 == bDollar && b3 == bB) ||
+ (b2 == bOpen && (b3 == bB || b3 == bJ)) ||
+ (b2 == bOpen && b3 == bI))
+ {
+ return "ISO 2022-JP";
+ }
+ if (i < len - 3) {
+ b4 = bytes[i + 3];
+ if (b2 == bDollar && b3 == bOpen && b4 == bD) {
+ return "ISO 2022-JP";
+ }
+ if (i < len - 5 &&
+ b2 == bAnd && b3 == bAt && b4 == bEscape &&
+ bytes[i + 4] == bDollar && bytes[i + 5] == bB)
+ {
+ return "ISO 2022-JP";
+ }
+ }
+ }
+ }
+
+ int sjis = 0;
+ int euc = 0;
+ int utf8 = 0;
+ for (int i = 0; i < len - 1; i++) {
+ b1 = bytes[i];
+ b2 = bytes[i + 1];
+ if (((0x81 <= b1 && b1 <= 0x9F) || (0xE0 <= b1 && b1 <= 0xFC)) &&
+ ((0x40 <= b2 && b2 <= 0x7E) || (0x80 <= b2 && b2 <= 0xFC)))
+ {
+ sjis += 2;
+ i++;
+ }
+ }
+ for (int i = 0; i < len - 1; i++) {
+ b1 = bytes[i];
+ b2 = bytes[i + 1];
+ if (((0xA1 <= b1 && b1 <= 0xFE) && (0xA1 <= b2 && b2 <= 0xFE)) ||
+ (b1 == 0x8E && (0xA1 <= b2 && b2 <= 0xDF)))
+ {
+ euc += 2;
+ i++;
+ }
+ else if (i < len - 2) {
+ b3 = bytes[i + 2];
+ if (b1 == 0x8F && (0xA1 <= b2 && b2 <= 0xFE) &&
+ (0xA1 <= b3 && b3 <= 0xFE))
+ {
+ euc += 3;
+ i += 2;
+ }
+ }
+ }
+ for (int i = 0; i < len - 1; i++) {
+ b1 = bytes[i];
+ b2 = bytes[i + 1];
+ if ((0xC0 <= b1 && b1 <= 0xDF) && (0x80 <= b2 && b2 <= 0xBF)) {
+ utf8 += 2;
+ i++;
+ }
+ else if (i < len - 2) {
+ b3 = bytes[i + 2];
+ if ((0xE0 <= b1 && b1 <= 0xEF) && (0x80 <= b2 && b2 <= 0xBF) &&
+ (0x80 <= b3 && b3 <= 0xBF))
+ {
+ utf8 += 3;
+ i += 2;
+ }
+ }
+ }
+
+ if (euc > sjis && euc > utf8) {
+ return "EUC-JP";
+ }
+ else if (sjis > euc && sjis > utf8) {
+ return "Shift-JIS";
+ }
+ else if (utf8 > euc && utf8 > sjis) {
+ return "UTF-8";
+ }
+
+#ifdef Q_OS_WIN
+ return "Shift-JIS";
#else
- convertFromSJIS();
+ return "UTF-8";
#endif
}
{
QTextCodec *codec = QTextCodec::codecForName("EUC-JP");
setPlainText(codec->toUnicode(m_source));
+ getMainWnd()->statusBar()->showMessage("EUC-JP");
}
void SimpleTextView::convertFromJIS()
{
QTextCodec *codec = QTextCodec::codecForName("ISO 2022-JP");
setPlainText(codec->toUnicode(m_source));
+ getMainWnd()->statusBar()->showMessage("ISO 2022-JP");
}
void SimpleTextView::convertFromSJIS()
{
QTextCodec *codec = QTextCodec::codecForName("Shift-JIS");
setPlainText(codec->toUnicode(m_source));
+ getMainWnd()->statusBar()->showMessage("Shift-JIS");
+
}
void SimpleTextView::convertFromUTF8()
{
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
setPlainText(codec->toUnicode(m_source));
+ getMainWnd()->statusBar()->showMessage("UTF-8");
+}
+
+void SimpleTextView::convertFromUTF16()
+{
+ QTextCodec *codec = QTextCodec::codecForName("UTF-16");
+ setPlainText(codec->toUnicode(m_source));
+ getMainWnd()->statusBar()->showMessage("UTF-16");
}
void SimpleTextView::convertFromUTF16BE()
{
QTextCodec *codec = QTextCodec::codecForName("UTF-16BE");
setPlainText(codec->toUnicode(m_source));
+ getMainWnd()->statusBar()->showMessage("UTF-16BE");
}
void SimpleTextView::convertFromUTF16LE()
{
QTextCodec *codec = QTextCodec::codecForName("UTF-16LE");
setPlainText(codec->toUnicode(m_source));
+ getMainWnd()->statusBar()->showMessage("UTF-16LE");
}
void SimpleTextView::back()