use of com.intellij.openapi.vcs.readOnlyHandler.ReadonlyStatusHandlerImpl in project intellij-community by JetBrains.
the class ChangeListManagerImpl method reopenFiles.
// used in TeamCity
@Override
public void reopenFiles(List<FilePath> paths) {
final ReadonlyStatusHandlerImpl readonlyStatusHandler = (ReadonlyStatusHandlerImpl) ReadonlyStatusHandler.getInstance(myProject);
final boolean savedOption = readonlyStatusHandler.getState().SHOW_DIALOG;
readonlyStatusHandler.getState().SHOW_DIALOG = false;
try {
readonlyStatusHandler.ensureFilesWritable(collectFiles(paths));
} finally {
readonlyStatusHandler.getState().SHOW_DIALOG = savedOption;
}
}
use of com.intellij.openapi.vcs.readOnlyHandler.ReadonlyStatusHandlerImpl in project intellij-community by JetBrains.
the class VcsOptionsTopHitProvider method getOptions.
@NotNull
@Override
public Collection<OptionDescription> getOptions(@Nullable Project project) {
if (project == null || ProjectLevelVcsManager.getInstance(project).getAllVcss().length == 0) {
return Collections.emptyList();
}
VcsConfiguration vcs = VcsConfiguration.getInstance(project);
if (vcs == null) {
return Collections.emptyList();
}
ArrayList<BooleanOptionDescription> options = new ArrayList<>();
// process Version Control settings
String id = "project.propVCSSupport.Mappings";
options.add(option(vcs, id, "Limit history by " + vcs.MAXIMUM_HISTORY_ROWS + " rows", "LIMIT_HISTORY"));
options.add(option(vcs, id, "Show directories with changed descendants", "SHOW_DIRTY_RECURSIVELY"));
VcsContentAnnotationSettings vcsCA = VcsContentAnnotationSettings.getInstance(project);
if (vcsCA != null) {
options.add(option(vcsCA, id, "Show changed in last " + vcsCA.getLimitDays() + " days", "isShow", "setShow"));
}
options.add(option(vcs, id, "Notify about VCS root errors", "SHOW_VCS_ERROR_NOTIFICATIONS"));
options.add(option(vcs, id, "Commit message right margin " + vcs.COMMIT_MESSAGE_MARGIN_SIZE + " columns", "USE_COMMIT_MESSAGE_MARGIN"));
options.add(option(vcs, id, ApplicationBundle.message("checkbox.wrap.typing.on.right.margin"), "WRAP_WHEN_TYPING_REACHES_RIGHT_MARGIN"));
// process Version Control / Confirmation settings
id = "project.propVCSSupport.Confirmation";
ReadonlyStatusHandler vcsROSH = ReadonlyStatusHandler.getInstance(project);
if (vcsROSH instanceof ReadonlyStatusHandlerImpl) {
options.add(option(((ReadonlyStatusHandlerImpl) vcsROSH).getState(), id, "Show \"Clear Read-only Status\" Dialog", "SHOW_DIALOG"));
}
options.add(option(vcs, id, "Confirmation: Suggest to move uncommitted changes to another changelist", "OFFER_MOVE_TO_ANOTHER_CHANGELIST_ON_PARTIAL_COMMIT"));
options.add(option(vcs, id, "Confirmation: Force non-empty checkin comments", "FORCE_NON_EMPTY_COMMENT"));
options.add(option(vcs, id, "Confirmation: Clear initial commit message", "CLEAR_INITIAL_COMMIT_MESSAGE"));
// process Version Control / Background settings
id = "project.propVCSSupport.Background";
options.add(option(vcs, id, "Perform in background: update from VCS", "PERFORM_UPDATE_IN_BACKGROUND"));
options.add(option(vcs, id, "Perform in background: commit to VCS", "PERFORM_COMMIT_IN_BACKGROUND"));
options.add(option(vcs, id, "Perform in background: checkout from VCS", "PERFORM_CHECKOUT_IN_BACKGROUND"));
options.add(option(vcs, id, "Perform in background: Edit/Checkout", "PERFORM_EDIT_IN_BACKGROUND"));
options.add(option(vcs, id, "Perform in background: Add/Remove", "PERFORM_ADD_REMOVE_IN_BACKGROUND"));
options.add(option(vcs, id, "Perform in background: revert", "PERFORM_ROLLBACK_IN_BACKGROUND"));
id = ShelfProjectConfigurable.HELP_ID;
options.add(option(vcs, id, VcsBundle.message("vcs.shelf.store.base.content"), "INCLUDE_TEXT_INTO_SHELF"));
if (!project.isDefault()) {
// process Version Control / Changelist Conflicts settings
options.add(tracker(project, "Changelists: Enable changelist conflict tracking", "TRACKING_ENABLED"));
options.add(tracker(project, "Changelists: Show conflict resolving dialog", "SHOW_DIALOG"));
options.add(tracker(project, "Changelists: Highlight files with conflicts", "HIGHLIGHT_CONFLICTS"));
options.add(tracker(project, "Changelists: Highlight files from non-active changelists", "HIGHLIGHT_NON_ACTIVE_CHANGELIST"));
}
return Collections.unmodifiableCollection(options);
}
use of com.intellij.openapi.vcs.readOnlyHandler.ReadonlyStatusHandlerImpl in project intellij-community by JetBrains.
the class CodeInsightTestFixtureImpl method invokeIntention.
public static boolean invokeIntention(@NotNull IntentionAction action, PsiFile file, Editor editor, String actionText) {
// Test that action will automatically clear the read-only attribute if modification is necessary.
// If your test fails due to this, make sure that your quick-fix/intention
// overrides "getElementToMakeWritable" or has the following line:
// if (!FileModificationService.getInstance().prepareFileForWrite(file)) return;
ReadonlyStatusHandlerImpl handler = (ReadonlyStatusHandlerImpl) ReadonlyStatusHandler.getInstance(file.getProject());
setReadOnly(file, true);
handler.setClearReadOnlyInTests(true);
AtomicBoolean result = new AtomicBoolean();
try {
ApplicationManager.getApplication().invokeLater(() -> result.set(ShowIntentionActionsHandler.chooseActionAndInvoke(file, editor, action, actionText)));
UIUtil.dispatchAllInvocationEvents();
} catch (AssertionError e) {
ExceptionUtil.rethrowUnchecked(ExceptionUtil.getRootCause(e));
throw e;
} finally {
handler.setClearReadOnlyInTests(false);
setReadOnly(file, false);
}
return result.get();
}
use of com.intellij.openapi.vcs.readOnlyHandler.ReadonlyStatusHandlerImpl in project intellij-community by JetBrains.
the class VcsFileStatusProvider method refreshFileStatusFromDocument.
@Override
public void refreshFileStatusFromDocument(@NotNull final VirtualFile virtualFile, @NotNull final Document doc) {
if (LOG.isDebugEnabled()) {
LOG.debug("refreshFileStatusFromDocument: file.getModificationStamp()=" + virtualFile.getModificationStamp() + ", document.getModificationStamp()=" + doc.getModificationStamp());
}
FileStatus cachedStatus = myFileStatusManager.getCachedStatus(virtualFile);
if (cachedStatus == null || cachedStatus == FileStatus.NOT_CHANGED || !isDocumentModified(virtualFile)) {
final AbstractVcs vcs = myVcsManager.getVcsFor(virtualFile);
if (vcs == null)
return;
if (cachedStatus == FileStatus.MODIFIED && !isDocumentModified(virtualFile)) {
if (!((ReadonlyStatusHandlerImpl) ReadonlyStatusHandlerImpl.getInstance(myProject)).getState().SHOW_DIALOG) {
RollbackEnvironment rollbackEnvironment = vcs.getRollbackEnvironment();
if (rollbackEnvironment != null) {
rollbackEnvironment.rollbackIfUnchanged(virtualFile);
}
}
}
myFileStatusManager.fileStatusChanged(virtualFile);
ChangeProvider cp = vcs.getChangeProvider();
if (cp != null && cp.isModifiedDocumentTrackingRequired()) {
myDirtyScopeManager.fileDirty(virtualFile);
}
}
}
Aggregations