Search in sources :

Example 1 with ReadonlyStatusHandlerImpl

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;
    }
}
Also used : ReadonlyStatusHandlerImpl(com.intellij.openapi.vcs.readOnlyHandler.ReadonlyStatusHandlerImpl)

Example 2 with ReadonlyStatusHandlerImpl

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);
}
Also used : ReadonlyStatusHandlerImpl(com.intellij.openapi.vcs.readOnlyHandler.ReadonlyStatusHandlerImpl) BooleanOptionDescription(com.intellij.ide.ui.search.BooleanOptionDescription) ArrayList(java.util.ArrayList) VcsContentAnnotationSettings(com.intellij.openapi.vcs.contentAnnotation.VcsContentAnnotationSettings) VcsConfiguration(com.intellij.openapi.vcs.VcsConfiguration) ReadonlyStatusHandler(com.intellij.openapi.vfs.ReadonlyStatusHandler) NotNull(org.jetbrains.annotations.NotNull)

Example 3 with ReadonlyStatusHandlerImpl

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();
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ReadonlyStatusHandlerImpl(com.intellij.openapi.vcs.readOnlyHandler.ReadonlyStatusHandlerImpl)

Example 4 with ReadonlyStatusHandlerImpl

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);
        }
    }
}
Also used : ReadonlyStatusHandlerImpl(com.intellij.openapi.vcs.readOnlyHandler.ReadonlyStatusHandlerImpl) RollbackEnvironment(com.intellij.openapi.vcs.rollback.RollbackEnvironment)

Aggregations

ReadonlyStatusHandlerImpl (com.intellij.openapi.vcs.readOnlyHandler.ReadonlyStatusHandlerImpl)4 BooleanOptionDescription (com.intellij.ide.ui.search.BooleanOptionDescription)1 VcsConfiguration (com.intellij.openapi.vcs.VcsConfiguration)1 VcsContentAnnotationSettings (com.intellij.openapi.vcs.contentAnnotation.VcsContentAnnotationSettings)1 RollbackEnvironment (com.intellij.openapi.vcs.rollback.RollbackEnvironment)1 ReadonlyStatusHandler (com.intellij.openapi.vfs.ReadonlyStatusHandler)1 ArrayList (java.util.ArrayList)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1 NotNull (org.jetbrains.annotations.NotNull)1