Skip to content

little UI impovements: combined logs and targets tool windows into one, removed verbose widget #456

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package org.utbot.cpp.clion.plugin.actions

import com.intellij.openapi.actionSystem.ActionPlaces
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CommonDataKeys
import com.intellij.openapi.actionSystem.ToggleAction
import com.intellij.openapi.project.Project
import org.utbot.cpp.clion.plugin.UTBot
import org.utbot.cpp.clion.plugin.settings.settings

class ChangeVerboseModeAction : ToggleAction() {
override fun isSelected(e: AnActionEvent): Boolean {
updateActionText(e)
return e.getRequiredData(CommonDataKeys.PROJECT).settings.storedSettings.verbose
}

override fun isDumbAware(): Boolean = true

override fun update(e: AnActionEvent) {
super.update(e)
e.presentation.isEnabledAndVisible = (e.project != null)
}

override fun setSelected(e: AnActionEvent, state: Boolean) {
with(e.getRequiredData(CommonDataKeys.PROJECT).settings) {
storedSettings.verbose = state
fireUTBotSettingsChanged()
}
updateActionText(e)
}

private fun updateActionText(e: AnActionEvent) {
e.presentation.text = getActionText(e.getRequiredData(CommonDataKeys.PROJECT), e.place)
}

companion object {
private fun getActionText(project: Project, place: String? = null): String {
val isVerboseEnabled = project.settings.storedSettings.verbose
var newText = if (isVerboseEnabled) UTBot.message("actions.verbose.enabled")
else UTBot.message("actions.verbose.disabled")
if (place != null && ActionPlaces.isPopupPlace(place)) {
newText = if (isVerboseEnabled)
UTBot.message("actions.verbose.menu.enabled")
else UTBot.message("actions.verbose.menu.disabled")
}
return newText
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import com.intellij.icons.AllIcons
import com.intellij.openapi.actionSystem.AnAction
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.components.service
import org.utbot.cpp.clion.plugin.ui.targetsToolWindow.UTBotTargetsController
import org.utbot.cpp.clion.plugin.ui.utbotToolWindow.targetToolWindow.UTBotTargetsController
import org.utbot.cpp.clion.plugin.utils.activeProject

class RefreshTargetsAction: AnAction() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import kotlinx.coroutines.flow.Flow
import org.utbot.cpp.clion.plugin.grpc.getDummyGrpcRequest
import org.utbot.cpp.clion.plugin.grpc.getLogChannelGrpcRequest
import org.utbot.cpp.clion.plugin.ui.services.OutputProvider
import org.utbot.cpp.clion.plugin.ui.userLog.UTBotConsole
import org.utbot.cpp.clion.plugin.ui.utbotToolWindow.logsToolWindow.UTBotConsole
import testsgen.Testgen
import testsgen.TestsGenServiceGrpcKt

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import com.intellij.openapi.project.Project
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.collect
import org.utbot.cpp.clion.plugin.ui.userLog.UTBotConsole
import org.utbot.cpp.clion.plugin.ui.utbotToolWindow.logsToolWindow.UTBotConsole
import org.utbot.cpp.clion.plugin.utils.invokeOnEdt
import org.utbot.cpp.clion.plugin.utils.logger
import testsgen.Testgen
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import kotlinx.coroutines.flow.Flow
import org.utbot.cpp.clion.plugin.grpc.getDummyGrpcRequest
import org.utbot.cpp.clion.plugin.grpc.getLogChannelGrpcRequest
import org.utbot.cpp.clion.plugin.ui.services.OutputProvider
import org.utbot.cpp.clion.plugin.ui.userLog.UTBotConsole
import org.utbot.cpp.clion.plugin.ui.utbotToolWindow.logsToolWindow.UTBotConsole
import testsgen.Testgen
import testsgen.TestsGenServiceGrpcKt.TestsGenServiceCoroutineStub

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ class CreateBuildDirHandler(
}
}
Testgen.ProjectConfigStatus.BUILD_DIR_CREATION_FAILED -> {
notifyInfo("Failed to create build directory! ${response.message}", project)
notifyError("Failed to create build directory! ${response.message}", project)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

closes #443

}
else -> notifyUnknownResponse(response, project)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,10 @@ package org.utbot.cpp.clion.plugin.settings
import com.intellij.openapi.components.Service
import com.intellij.openapi.components.service
import com.intellij.openapi.project.Project
import com.jetbrains.cidr.cpp.execution.CMakeAppRunConfiguration
import org.utbot.cpp.clion.plugin.listeners.UTBotSettingsChangedListener
import org.utbot.cpp.clion.plugin.ui.targetsToolWindow.UTBotTarget
import org.utbot.cpp.clion.plugin.ui.utbotToolWindow.targetToolWindow.UTBotTarget
import org.utbot.cpp.clion.plugin.utils.convertToRemotePathIfNeeded
import org.utbot.cpp.clion.plugin.utils.isWindows
import org.utbot.cpp.clion.plugin.utils.notifyWarning
import org.utbot.cpp.clion.plugin.utils.path
import java.io.File
import java.nio.file.Path
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import com.intellij.openapi.components.State
import com.intellij.openapi.components.Storage
import com.intellij.openapi.components.service
import com.intellij.openapi.project.Project
import org.utbot.cpp.clion.plugin.ui.targetsToolWindow.UTBotTarget
import org.utbot.cpp.clion.plugin.ui.targetsToolWindow.UTBotTargetsController
import org.utbot.cpp.clion.plugin.ui.utbotToolWindow.targetToolWindow.UTBotTarget
import org.utbot.cpp.clion.plugin.ui.utbotToolWindow.targetToolWindow.UTBotTargetsController
import org.utbot.cpp.clion.plugin.utils.path
import java.nio.file.Paths

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ import com.intellij.openapi.util.Disposer
import com.intellij.util.ui.JBUI
import com.intellij.util.ui.components.BorderLayoutPanel
import org.utbot.cpp.clion.plugin.client.logger.LogLevel
import org.utbot.cpp.clion.plugin.ui.userLog.OutputType
import org.utbot.cpp.clion.plugin.ui.userLog.UTBotConsole
import org.utbot.cpp.clion.plugin.utils.logger
import java.awt.BorderLayout
import java.awt.Component
import java.awt.GridLayout
import java.awt.event.ItemEvent
import javax.swing.JPanel
import org.utbot.cpp.clion.plugin.ui.utbotToolWindow.logsToolWindow.OutputType
import org.utbot.cpp.clion.plugin.ui.utbotToolWindow.logsToolWindow.UTBotConsole

@Service
class OutputProvider(val project: Project) : Disposable {
Expand Down Expand Up @@ -65,4 +65,4 @@ class OutputProvider(val project: Project) : Disposable {
}
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@ package org.utbot.cpp.clion.plugin.ui.statusBar

import com.intellij.ide.DataManager
import com.intellij.openapi.actionSystem.ActionPlaces
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.actionSystem.DefaultActionGroup
import com.intellij.openapi.options.ShowSettingsUtil
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.openapi.project.Project
import com.intellij.openapi.ui.popup.JBPopupFactory
import com.intellij.openapi.ui.popup.ListPopup
Expand All @@ -12,12 +15,15 @@ import com.intellij.openapi.wm.StatusBarWidget
import com.intellij.openapi.wm.StatusBarWidgetFactory
import com.intellij.ui.awt.RelativePoint
import com.intellij.util.Consumer
import org.utbot.cpp.clion.plugin.UTBot
import org.utbot.cpp.clion.plugin.actions.ChangeVerboseModeAction
import org.utbot.cpp.clion.plugin.actions.ReconnectAction
import org.utbot.cpp.clion.plugin.actions.configure.ConfigureProjectAction
import org.utbot.cpp.clion.plugin.actions.configure.ReconfigureProjectAction
import org.utbot.cpp.clion.plugin.actions.ShowWizardAction
import org.utbot.cpp.clion.plugin.listeners.ConnectionStatus
import org.utbot.cpp.clion.plugin.listeners.UTBotEventsListener
import org.utbot.cpp.clion.plugin.settings.UTBotConfigurable
import org.utbot.cpp.clion.plugin.utils.projectLifetimeDisposable
import java.awt.Component
import java.awt.Point
Expand Down Expand Up @@ -100,6 +106,16 @@ object StatusBarActionsPopup {
ActionPlaces.POPUP
)
}
private object ShortcutSettingsAction : DumbAwareAction(UTBot.message("actions.settings.text")) {
override fun actionPerformed(e: AnActionEvent) {
ShowSettingsUtil.getInstance().showSettingsDialog(e.project, UTBotConfigurable::class.java)
}

override fun update(e: AnActionEvent) {
super.update(e)
e.presentation.isEnabledAndVisible = e.project != null
}
}

private fun getActions(): DefaultActionGroup {
val actionGroup = DefaultActionGroup()
Expand All @@ -109,9 +125,13 @@ object StatusBarActionsPopup {
actionGroup.addSeparator()
actionGroup.add(ConfigureProjectAction())
actionGroup.addSeparator()
actionGroup.add(ShortcutSettingsAction)
actionGroup.addSeparator()
actionGroup.add(ReconnectAction())
actionGroup.addSeparator()
actionGroup.addAction(ReconfigureProjectAction())
actionGroup.addSeparator()
actionGroup.add(ChangeVerboseModeAction())

return actionGroup
}
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.utbot.cpp.clion.plugin.ui.utbotToolWindow

import com.intellij.openapi.components.service
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.project.DumbAware
import com.intellij.openapi.project.Project
import com.intellij.openapi.wm.ToolWindow
import com.intellij.openapi.wm.ToolWindowFactory
import org.utbot.cpp.clion.plugin.UTBot
import org.utbot.cpp.clion.plugin.ui.utbotToolWindow.logsToolWindow.ConsoleToolWindow
import org.utbot.cpp.clion.plugin.ui.utbotToolWindow.targetToolWindow.UTBotTargetsController

class UTBotToolWindowFactory : ToolWindowFactory, DumbAware {
private val logger = Logger.getInstance(this::class.java)

override fun createToolWindowContent(project: Project, toolWindow: ToolWindow) {
logger.info("createToolWindowContent was called")
val contentManager = toolWindow.contentManager
val targetsToolWindow = contentManager.factory.createContent(
project.service<UTBotTargetsController>().targetsToolWindow, UTBot.message("toolwindow.targets.displayName"), false
)
val logsToolWindow =
contentManager.factory.createContent(ConsoleToolWindow(project), UTBot.message("toolwindow.logs.displayName"), false)
toolWindow.contentManager.addContent(logsToolWindow)
toolWindow.contentManager.addContent(targetsToolWindow)
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.utbot.cpp.clion.plugin.ui.userLog
package org.utbot.cpp.clion.plugin.ui.utbotToolWindow.logsToolWindow

import com.intellij.execution.impl.ConsoleViewImpl
import com.intellij.execution.ui.ConsoleViewContentType
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.utbot.cpp.clion.plugin.ui.targetsToolWindow
package org.utbot.cpp.clion.plugin.ui.utbotToolWindow.targetToolWindow

import com.intellij.openapi.project.Project
import org.utbot.cpp.clion.plugin.utils.convertFromRemotePathIfNeeded
Expand All @@ -22,4 +22,4 @@ data class UTBotTarget(val path: String, val name: String, val description: Stri
description = "Finds any target that contains the code under test"
)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.utbot.cpp.clion.plugin.ui.targetsToolWindow
package org.utbot.cpp.clion.plugin.ui.utbotToolWindow.targetToolWindow

import com.intellij.openapi.components.Service
import com.intellij.openapi.project.Project
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.utbot.cpp.clion.plugin.ui.targetsToolWindow
package org.utbot.cpp.clion.plugin.ui.utbotToolWindow.targetToolWindow

import com.intellij.openapi.actionSystem.ActionGroup
import com.intellij.openapi.actionSystem.ActionManager
Expand All @@ -16,8 +16,6 @@ import javax.swing.JList
import javax.swing.ListSelectionModel
import org.utbot.cpp.clion.plugin.UTBot
import org.utbot.cpp.clion.plugin.actions.RefreshTargetsAction
import org.utbot.cpp.clion.plugin.utils.invokeOnEdt
import org.utbot.cpp.clion.plugin.utils.logger

class UTBotTargetsToolWindow(
listModel: CollectionListModel<UTBotTarget>,
Expand Down
Loading