summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/sessiondialog.cpp
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2010-06-16 17:32:44 +0200
committerThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2010-06-16 17:59:43 +0200
commita09ffde2be86da3465a7c934db50b1f8d215983f (patch)
tree35de2423ad7de38c5d0a28ec53e8b9a963ce5e1e /src/plugins/projectexplorer/sessiondialog.cpp
parent16989185df183eb4c5ba37333ab4c50de8ecdb9b (diff)
downloadqt-creator-a09ffde2be86da3465a7c934db50b1f8d215983f.tar.gz
Set a parent for the New and Rename Session dialogs
Fixes window manager glitches at least on GNOME. Reviewed-by: dt
Diffstat (limited to 'src/plugins/projectexplorer/sessiondialog.cpp')
-rw-r--r--src/plugins/projectexplorer/sessiondialog.cpp28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/plugins/projectexplorer/sessiondialog.cpp b/src/plugins/projectexplorer/sessiondialog.cpp
index fb9bb71ca1..c4f1f608ec 100644
--- a/src/plugins/projectexplorer/sessiondialog.cpp
+++ b/src/plugins/projectexplorer/sessiondialog.cpp
@@ -74,23 +74,27 @@ void SessionValidator::fixup(QString &input) const
input = copy;
}
+
class SessionNameInputDialog : public QDialog
{
Q_OBJECT
public:
- SessionNameInputDialog(const QStringList& sessions, const QString &initialValue = QString());
+ SessionNameInputDialog(const QStringList &sessions, QWidget *parent = 0);
+
+ void setValue(const QString &value);
QString value() const;
+
private:
QLineEdit *m_newSessionLineEdit;
};
-SessionNameInputDialog::SessionNameInputDialog(const QStringList& sessions, const QString &initialValue)
+SessionNameInputDialog::SessionNameInputDialog(const QStringList &sessions, QWidget *parent)
+ : QDialog(parent)
{
QVBoxLayout *hlayout = new QVBoxLayout(this);
QLabel *label = new QLabel(tr("Enter the name of the session:"), this);
hlayout->addWidget(label);
m_newSessionLineEdit = new QLineEdit(this);
- m_newSessionLineEdit->setText(initialValue);
m_newSessionLineEdit->setValidator(new SessionValidator(this, sessions));
hlayout->addWidget(m_newSessionLineEdit);
QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this);
@@ -100,11 +104,17 @@ SessionNameInputDialog::SessionNameInputDialog(const QStringList& sessions, cons
setLayout(hlayout);
}
+void SessionNameInputDialog::setValue(const QString &value)
+{
+ m_newSessionLineEdit->setText(value);
+}
+
QString SessionNameInputDialog::value() const
{
return m_newSessionLineEdit->text();
}
+
SessionDialog::SessionDialog(SessionManager *sessionManager)
: m_sessionManager(sessionManager)
{
@@ -174,7 +184,7 @@ void SessionDialog::updateActions()
void SessionDialog::createNew()
{
- SessionNameInputDialog newSessionInputDialog(m_sessionManager->sessions());
+ SessionNameInputDialog newSessionInputDialog(m_sessionManager->sessions(), this);
newSessionInputDialog.setWindowTitle(tr("New session name"));
if (newSessionInputDialog.exec() == QDialog::Accepted) {
@@ -192,8 +202,10 @@ void SessionDialog::createNew()
void SessionDialog::clone()
{
- SessionNameInputDialog newSessionInputDialog(m_sessionManager->sessions(), m_ui.sessionList->currentItem()->text());
+ SessionNameInputDialog newSessionInputDialog(m_sessionManager->sessions(), this);
+ newSessionInputDialog.setValue(m_ui.sessionList->currentItem()->text());
newSessionInputDialog.setWindowTitle(tr("New session name"));
+
if (newSessionInputDialog.exec() == QDialog::Accepted) {
QString newSession = newSessionInputDialog.value();
if (m_sessionManager->cloneSession(m_ui.sessionList->currentItem()->text(), newSession)) {
@@ -213,11 +225,12 @@ void SessionDialog::remove()
markItems();
}
-
void SessionDialog::rename()
{
- SessionNameInputDialog newSessionInputDialog(m_sessionManager->sessions(), m_ui.sessionList->currentItem()->text());
+ SessionNameInputDialog newSessionInputDialog(m_sessionManager->sessions(), this);
+ newSessionInputDialog.setValue(m_ui.sessionList->currentItem()->text());
newSessionInputDialog.setWindowTitle(tr("Rename session"));
+
if (newSessionInputDialog.exec() == QDialog::Accepted) {
m_sessionManager->renameSession(m_ui.sessionList->currentItem()->text(), newSessionInputDialog.value());
m_ui.sessionList->clear();
@@ -226,7 +239,6 @@ void SessionDialog::rename()
}
}
-
void SessionDialog::switchToSession()
{
if (m_ui.sessionList->currentItem()) {