ClearCase: Inline undocheckout.ui

Change-Id: Id687cc5346cbbac01258efdf28eac427e7d97581
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
hjk
2022-09-28 17:42:25 +02:00
parent 1753840f7a
commit 7fe2432c78
4 changed files with 77 additions and 158 deletions

View File

@@ -12,6 +12,5 @@ add_qtc_plugin(ClearCase
clearcasesubmiteditorwidget.cpp clearcasesubmiteditorwidget.h clearcasesubmiteditorwidget.cpp clearcasesubmiteditorwidget.h
clearcasesync.cpp clearcasesync.h clearcasesync.cpp clearcasesync.h
settingspage.cpp settingspage.h settingspage.cpp settingspage.h
undocheckout.ui
versionselector.cpp versionselector.h versionselector.ui versionselector.cpp versionselector.h versionselector.ui
) )

View File

@@ -36,7 +36,6 @@ QtcPlugin {
"clearcasesync.h", "clearcasesync.h",
"settingspage.cpp", "settingspage.cpp",
"settingspage.h", "settingspage.h",
"undocheckout.ui",
"versionselector.cpp", "versionselector.cpp",
"versionselector.h", "versionselector.h",
"versionselector.ui", "versionselector.ui",

View File

@@ -13,7 +13,6 @@
#include "clearcasesync.h" #include "clearcasesync.h"
#include "settingspage.h" #include "settingspage.h"
#include "versionselector.h" #include "versionselector.h"
#include "ui_undocheckout.h"
#include <coreplugin/actionmanager/actioncontainer.h> #include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/actionmanager/actionmanager.h> #include <coreplugin/actionmanager/actionmanager.h>
@@ -32,6 +31,7 @@
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/hostosinfo.h> #include <utils/hostosinfo.h>
#include <utils/infobar.h> #include <utils/infobar.h>
#include <utils/layoutbuilder.h>
#include <utils/parameteraction.h> #include <utils/parameteraction.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/qtcprocess.h> #include <utils/qtcprocess.h>
@@ -47,7 +47,10 @@
#include <vcsbase/vcsbaseplugin.h> #include <vcsbase/vcsbaseplugin.h>
#include <vcsbase/vcscommand.h> #include <vcsbase/vcscommand.h>
#include <QAbstractButton>
#include <QAction> #include <QAction>
#include <QApplication>
#include <QCheckBox>
#include <QDebug> #include <QDebug>
#include <QDialog> #include <QDialog>
#include <QDialogButtonBox> #include <QDialogButtonBox>
@@ -56,6 +59,7 @@
#include <QFuture> #include <QFuture>
#include <QFutureInterface> #include <QFutureInterface>
#include <QInputDialog> #include <QInputDialog>
#include <QLabel>
#include <QList> #include <QList>
#include <QMenu> #include <QMenu>
#include <QMessageBox> #include <QMessageBox>
@@ -66,6 +70,7 @@
#include <QTextCodec> #include <QTextCodec>
#include <QUuid> #include <QUuid>
#include <QVBoxLayout> #include <QVBoxLayout>
#ifdef WITH_TESTS #ifdef WITH_TESTS
#include <QTest> #include <QTest>
#include <coreplugin/vcsmanager.h> #include <coreplugin/vcsmanager.h>
@@ -80,22 +85,22 @@ using namespace std::placeholders;
namespace ClearCase { namespace ClearCase {
namespace Internal { namespace Internal {
static const char CLEARCASE_CONTEXT[] = "ClearCase Context"; const char CLEARCASE_CONTEXT[] = "ClearCase Context";
static const char CMD_ID_CLEARCASE_MENU[] = "ClearCase.Menu"; const char CMD_ID_CLEARCASE_MENU[] = "ClearCase.Menu";
static const char CMD_ID_CHECKOUT[] = "ClearCase.CheckOut"; const char CMD_ID_CHECKOUT[] = "ClearCase.CheckOut";
static const char CMD_ID_CHECKIN[] = "ClearCase.CheckInCurrent"; const char CMD_ID_CHECKIN[] = "ClearCase.CheckInCurrent";
static const char CMD_ID_UNDOCHECKOUT[] = "ClearCase.UndoCheckOut"; const char CMD_ID_UNDOCHECKOUT[] = "ClearCase.UndoCheckOut";
static const char CMD_ID_UNDOHIJACK[] = "ClearCase.UndoHijack"; const char CMD_ID_UNDOHIJACK[] = "ClearCase.UndoHijack";
static const char CMD_ID_DIFF_CURRENT[] = "ClearCase.DiffCurrent"; const char CMD_ID_DIFF_CURRENT[] = "ClearCase.DiffCurrent";
static const char CMD_ID_HISTORY_CURRENT[] = "ClearCase.HistoryCurrent"; const char CMD_ID_HISTORY_CURRENT[] = "ClearCase.HistoryCurrent";
static const char CMD_ID_ANNOTATE[] = "ClearCase.Annotate"; const char CMD_ID_ANNOTATE[] = "ClearCase.Annotate";
static const char CMD_ID_ADD_FILE[] = "ClearCase.AddFile"; const char CMD_ID_ADD_FILE[] = "ClearCase.AddFile";
static const char CMD_ID_DIFF_ACTIVITY[] = "ClearCase.DiffActivity"; const char CMD_ID_DIFF_ACTIVITY[] = "ClearCase.DiffActivity";
static const char CMD_ID_CHECKIN_ACTIVITY[] = "ClearCase.CheckInActivity"; const char CMD_ID_CHECKIN_ACTIVITY[] = "ClearCase.CheckInActivity";
static const char CMD_ID_UPDATEINDEX[] = "ClearCase.UpdateIndex"; const char CMD_ID_UPDATEINDEX[] = "ClearCase.UpdateIndex";
static const char CMD_ID_UPDATE_VIEW[] = "ClearCase.UpdateView"; const char CMD_ID_UPDATE_VIEW[] = "ClearCase.UpdateView";
static const char CMD_ID_CHECKIN_ALL[] = "ClearCase.CheckInAll"; const char CMD_ID_CHECKIN_ALL[] = "ClearCase.CheckInAll";
static const char CMD_ID_STATUS[] = "ClearCase.Status"; const char CMD_ID_STATUS[] = "ClearCase.Status";
const int s_silentRun = VcsCommand::NoOutput | VcsCommand::FullySynchronously; const int s_silentRun = VcsCommand::NoOutput | VcsCommand::FullySynchronously;
const int s_verboseRun = VcsCommand::ShowStdOut | VcsCommand::FullySynchronously; const int s_verboseRun = VcsCommand::ShowStdOut | VcsCommand::FullySynchronously;
@@ -1017,6 +1022,53 @@ void ClearCasePluginPrivate::setStatus(const QString &file, FileStatus::Status s
QMetaObject::invokeMethod(this, &ClearCasePluginPrivate::updateStatusActions); QMetaObject::invokeMethod(this, &ClearCasePluginPrivate::updateStatusActions);
} }
class UndoCheckOutDialog : public QDialog
{
Q_DECLARE_TR_FUNCTIONS(ClearCase::Internal::UndoCheckOut)
public:
UndoCheckOutDialog()
{
resize(323, 105);
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
setWindowTitle(tr("Dialog"));
lblMessage = new QLabel(this);
QPalette palette;
QBrush brush(QColor(255, 0, 0, 255));
brush.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Active, QPalette::WindowText, brush);
palette.setBrush(QPalette::Inactive, QPalette::WindowText, brush);
QBrush brush1(QColor(68, 96, 92, 255));
brush1.setStyle(Qt::SolidPattern);
palette.setBrush(QPalette::Disabled, QPalette::WindowText, brush1);
auto lblModified = new QLabel(tr("The file was changed."));
lblModified->setPalette(palette);
chkKeep = new QCheckBox(tr("&Save copy of the file with a '.keep' extension"));
chkKeep->setChecked(true);
auto buttonBox = new QDialogButtonBox(QDialogButtonBox::No|QDialogButtonBox::Yes);
using namespace Layouting;
Column {
lblMessage,
lblModified,
chkKeep,
buttonBox
}.attachTo(this);
connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
}
QLabel *lblMessage;
QCheckBox *chkKeep;
};
void ClearCasePluginPrivate::undoCheckOutCurrent() void ClearCasePluginPrivate::undoCheckOutCurrent()
{ {
const VcsBasePluginState state = currentState(); const VcsBasePluginState state = currentState();
@@ -1033,14 +1085,12 @@ void ClearCasePluginPrivate::undoCheckOutCurrent()
bool keep = false; bool keep = false;
if (result.exitCode()) { // return value is 1 if there is any difference if (result.exitCode()) { // return value is 1 if there is any difference
Ui::UndoCheckOut uncoUi; UndoCheckOutDialog dialog;
QDialog uncoDlg; dialog.lblMessage->setText(tr("Do you want to undo the check out of \"%1\"?").arg(fileName));
uncoUi.setupUi(&uncoDlg); dialog.chkKeep->setChecked(m_settings.keepFileUndoCheckout);
uncoUi.lblMessage->setText(tr("Do you want to undo the check out of \"%1\"?").arg(fileName)); if (dialog.exec() != QDialog::Accepted)
uncoUi.chkKeep->setChecked(m_settings.keepFileUndoCheckout);
if (uncoDlg.exec() != QDialog::Accepted)
return; return;
keep = uncoUi.chkKeep->isChecked(); keep = dialog.chkKeep->isChecked();
if (keep != m_settings.keepFileUndoCheckout) { if (keep != m_settings.keepFileUndoCheckout) {
m_settings.keepFileUndoCheckout = keep; m_settings.keepFileUndoCheckout = keep;
m_settings.toSettings(ICore::settings()); m_settings.toSettings(ICore::settings());
@@ -1117,15 +1167,13 @@ void ClearCasePluginPrivate::undoHijackCurrent()
askKeep = false; askKeep = false;
} }
if (askKeep) { if (askKeep) {
Ui::UndoCheckOut unhijackUi; UndoCheckOutDialog unhijackDlg;
QDialog unhijackDlg;
unhijackUi.setupUi(&unhijackDlg);
unhijackDlg.setWindowTitle(tr("Undo Hijack File")); unhijackDlg.setWindowTitle(tr("Undo Hijack File"));
unhijackUi.lblMessage->setText(tr("Do you want to undo hijack of \"%1\"?") unhijackDlg.lblMessage->setText(tr("Do you want to undo hijack of \"%1\"?")
.arg(QDir::toNativeSeparators(fileName))); .arg(QDir::toNativeSeparators(fileName)));
if (unhijackDlg.exec() != QDialog::Accepted) if (unhijackDlg.exec() != QDialog::Accepted)
return; return;
keep = unhijackUi.chkKeep->isChecked(); keep = unhijackDlg.chkKeep->isChecked();
} }
FileChangeBlocker fcb(FilePath::fromString(state.currentFile())); FileChangeBlocker fcb(FilePath::fromString(state.currentFile()));

View File

@@ -1,127 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ClearCase::Internal::UndoCheckOut</class>
<widget class="QDialog" name="ClearCase::Internal::UndoCheckOut">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>323</width>
<height>105</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="lblMessage"/>
</item>
<item>
<widget class="QLabel" name="lblModified">
<property name="palette">
<palette>
<active>
<colorrole role="WindowText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>255</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
</active>
<inactive>
<colorrole role="WindowText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>255</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
</inactive>
<disabled>
<colorrole role="WindowText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>68</red>
<green>96</green>
<blue>92</blue>
</color>
</brush>
</colorrole>
</disabled>
</palette>
</property>
<property name="text">
<string>The file was changed.</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="chkKeep">
<property name="text">
<string>&amp;Save copy of the file with a '.keep' extension</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::No|QDialogButtonBox::Yes</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>ClearCase::Internal::UndoCheckOut</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>ClearCase::Internal::UndoCheckOut</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>