aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Szymon Tomasz Stefanek2015-08-01 01:18:19 +0200
committerGravatar Szymon Tomasz Stefanek2015-08-01 01:18:19 +0200
commit3be4b73530a61fae785b33a91eaeaefd7e94cd69 (patch)
tree83373e1cb7022168b9f788b0cae3c316db24a275 /src
parentDisable DCC Canvas support in CMakeLists.txt. It's broken since long time. (diff)
downloadKVIrc-3be4b73530a61fae785b33a91eaeaefd7e94cd69.tar.gz
KVIrc-3be4b73530a61fae785b33a91eaeaefd7e94cd69.tar.bz2
KVIrc-3be4b73530a61fae785b33a91eaeaefd7e94cd69.zip
Force the user to choose a nickname at first startup.
Closes #1489
Diffstat (limited to 'src')
-rw-r--r--src/kvilib/tal/KviTalWizard.cpp23
-rw-r--r--src/kvirc/kernel/KviApplication_setup.cpp3
-rw-r--r--src/kvirc/kernel/KviOptions.cpp2
-rw-r--r--src/kvirc/ui/KviSelectors.h2
-rw-r--r--src/modules/setup/SetupWizard.cpp32
-rw-r--r--src/modules/setup/SetupWizard.h8
6 files changed, 48 insertions, 22 deletions
diff --git a/src/kvilib/tal/KviTalWizard.cpp b/src/kvilib/tal/KviTalWizard.cpp
index 24c8c2264..2047c3dea 100644
--- a/src/kvilib/tal/KviTalWizard.cpp
+++ b/src/kvilib/tal/KviTalWizard.cpp
@@ -333,13 +333,22 @@ void KviTalWizard::setCurrentPage(KviTalWizardPageData * pData)
QString szTitle;
QString szSteps;
+ bool bHaveNextPage = false;
+ bool bHavePrevPage = false;
+
if(pData)
{
- bNextEnabled = (pData->iEnableFlags & KviTalWizardPageData::EnableNext) && m_p->findNextEnabledPage(pData->pWidget);
- bBackEnabled = (pData->iEnableFlags & KviTalWizardPageData::EnableBack) && m_p->findPrevEnabledPage(pData->pWidget);
+ bHavePrevPage = m_p->findPrevEnabledPage(pData->pWidget);
+ bHaveNextPage = m_p->findNextEnabledPage(pData->pWidget);
+
+ bNextEnabled = (pData->iEnableFlags & KviTalWizardPageData::EnableNext) && bHaveNextPage;
+ bBackEnabled = (pData->iEnableFlags & KviTalWizardPageData::EnableBack) && bHavePrevPage;
+
bCancelEnabled = (pData->iEnableFlags & KviTalWizardPageData::EnableCancel);
bFinishEnabled = (pData->iEnableFlags & KviTalWizardPageData::EnableFinish);
+
bHelpEnabled = (pData->iEnableFlags & KviTalWizardPageData::EnableHelp);
+
m_p->pWidgetStack->setCurrentWidget(pData->pWidget);
szTitle = "<b>";
@@ -365,7 +374,7 @@ void KviTalWizard::setCurrentPage(KviTalWizardPageData * pData)
m_p->pStepsLabel->setText(szSteps);
m_p->pNextButton->setEnabled(bNextEnabled);
- if(bNextEnabled)
+ if(bHaveNextPage)
{
m_p->pNextButton->show();
m_p->pNextSpacer->show();
@@ -375,14 +384,22 @@ void KviTalWizard::setCurrentPage(KviTalWizardPageData * pData)
m_p->pNextSpacer->hide();
m_p->pNextButton->setDefault(false);
}
+
m_p->pBackButton->setEnabled(bBackEnabled);
+ if(bHavePrevPage)
+ m_p->pBackButton->show();
+ else
+ m_p->pBackButton->hide();
+
m_p->pHelpButton->setEnabled(bHelpEnabled);
if(bHelpEnabled)
m_p->pHelpButton->show();
else
m_p->pHelpButton->hide();
+
m_p->pCancelButton->setEnabled(bCancelEnabled);
m_p->pFinishButton->setEnabled(bFinishEnabled);
+
if(bFinishEnabled)
{
m_p->pFinishButton->show();
diff --git a/src/kvirc/kernel/KviApplication_setup.cpp b/src/kvirc/kernel/KviApplication_setup.cpp
index 4cbdf2f04..e80711b4d 100644
--- a/src/kvirc/kernel/KviApplication_setup.cpp
+++ b/src/kvirc/kernel/KviApplication_setup.cpp
@@ -23,7 +23,6 @@
//=============================================================================
-
//#define _KVI_DEBUG_CHECK_RANGE_
//#include "kvi_debug.h"
@@ -48,7 +47,6 @@
#ifdef COMPILE_KDE_SUPPORT
#include <kconfig.h>
#include <KConfigGroup>
-// #include <kstddirs.h>
#endif
#endif
@@ -856,3 +854,4 @@ void KviApplication::saveKvircDirectory()
cfgx.writeEntry("LocalKvircDirectory",m_szLocalKvircDir);
cfgx.writeEntry("SourcesDate",KVI_SOURCES_DATE_NUMERIC);
}
+
diff --git a/src/kvirc/kernel/KviOptions.cpp b/src/kvirc/kernel/KviOptions.cpp
index 4c33ac1a7..1b2f788c7 100644
--- a/src/kvirc/kernel/KviOptions.cpp
+++ b/src/kvirc/kernel/KviOptions.cpp
@@ -355,7 +355,7 @@ KviBoolOption g_boolOptionsTable[KVI_NUM_BOOL_OPTIONS]=
KviStringOption g_stringOptionsTable[KVI_NUM_STRING_OPTIONS]=
{
STRING_OPTION("UNUSED:FrameCaption","",KviOption_sectFlagFrame),
- STRING_OPTION("Nickname1",KVI_DEFAULT_NICKNAME1,KviOption_sectFlagUser),
+ STRING_OPTION("Nickname1","",KviOption_sectFlagUser),
STRING_OPTION("Nickname2","",KviOption_sectFlagUser),
STRING_OPTION("Nickname3","",KviOption_sectFlagUser),
STRING_OPTION("Nickname4","",KviOption_sectFlagUser),
diff --git a/src/kvirc/ui/KviSelectors.h b/src/kvirc/ui/KviSelectors.h
index cc071c60d..8b2f4f178 100644
--- a/src/kvirc/ui/KviSelectors.h
+++ b/src/kvirc/ui/KviSelectors.h
@@ -112,6 +112,8 @@ public:
void setText(const QString& text);
QString textForSearch(){return m_pLabel->text();};
QWidget *widgetToHighlight(){return (QWidget *)m_pLabel;};
+ QLineEdit * lineEdit(){ return m_pLineEdit; };
+ QString currentText(){ return m_pLineEdit->text(); };
public slots:
virtual void setEnabled(bool bEnabled);
};
diff --git a/src/modules/setup/SetupWizard.cpp b/src/modules/setup/SetupWizard.cpp
index a4cefc66d..3a7fcf6d5 100644
--- a/src/modules/setup/SetupWizard.cpp
+++ b/src/modules/setup/SetupWizard.cpp
@@ -322,19 +322,12 @@ SetupWizard::SetupWizard()
"If in doubt, just enter the first nick that comes to mind. " \
"You will be able to change it later in the Identity properties, or with the /NICK command."));
- QString nick;
- char * nnn = KviEnvironment::getVariable("USER");
- if(nnn)nick = nnn;
- else nick = "newbie";
- if(nick.isEmpty())nick = "newbie";
- if(nick == "root")nick = "newbie";
-//m_pIdentity->m_pVBox
-//__tr2qs("Basic Properties")
KviTalGroupBox * gbox = new KviTalGroupBox(Qt::Horizontal,QString(),m_pIdentity->m_pVBox);
m_pNickSelector = new KviStringSelector(gbox,__tr2qs("Nickname:"),&(KVI_OPTION_STRING(KviOption_stringNickname1)),true);
m_pNickSelector->setMinimumLabelWidth(120);
m_pNickSelector->setMargin(0);
+ QObject::connect(m_pNickSelector->lineEdit(),SIGNAL(textChanged(const QString &)),this,SLOT(nickSelectorTextChanged(const QString &)));
QValidator * v = new QRegExpValidator(QRegExp("[^-0-9 ][^ ]*"),gbox);
m_pNickSelector->setValidator(v);
@@ -416,7 +409,6 @@ SetupWizard::SetupWizard()
setHelpEnabled(m_pIdentity,false);
-
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Default theme
m_pTheme = new SetupPage(this);
@@ -576,7 +568,8 @@ SetupWizard::SetupWizard()
if(!KviFileUtils::fileExists(szMircIni))
szMircIni = szMircDir + "/pirc.ini";
- if(KviFileUtils::fileExists(szMircIni)){
+ if(KviFileUtils::fileExists(szMircIni))
+ {
KviConfigurationFile cfg(szMircIni,KviConfigurationFile::Read,true);
if(cfg.hasGroup("mirc"))
{
@@ -613,6 +606,8 @@ SetupWizard::SetupWizard()
newDirClicked();
//setMinimumSize(630,450);
+
+ enableOrDisableIdentityPageNextButton();
}
@@ -645,6 +640,17 @@ void SetupWizard::showEvent(QShowEvent *e)
KviTalWizard::showEvent(e);
}
+void SetupWizard::enableOrDisableIdentityPageNextButton()
+{
+ setNextEnabled(m_pIdentity,!m_pNickSelector->currentText().trimmed().isEmpty());
+}
+
+
+void SetupWizard::nickSelectorTextChanged(const QString & str)
+{
+ enableOrDisableIdentityPageNextButton();
+}
+
void SetupWizard::oldDirClicked()
{
m_pOldPathBox->setEnabled(true);
@@ -659,17 +665,17 @@ void SetupWizard::oldDirClicked()
else setNextEnabled(m_pDirectory,true);
}
-void SetupWizard::oldDataTextChanged ( const QString & str)
+void SetupWizard::oldDataTextChanged(const QString & str)
{
setNextEnabled(m_pDirectory,!str.isEmpty());
}
-void SetupWizard::newDataTextChanged ( const QString & str)
+void SetupWizard::newDataTextChanged(const QString & str)
{
setNextEnabled(m_pDirectory,!str.isEmpty() && !m_pIncomingPathEdit->text().isEmpty());
}
-void SetupWizard::newIncomingTextChanged ( const QString & str)
+void SetupWizard::newIncomingTextChanged(const QString & str)
{
setNextEnabled(m_pDirectory,!str.isEmpty() && !m_pDataPathEdit->text().isEmpty());
}
diff --git a/src/modules/setup/SetupWizard.h b/src/modules/setup/SetupWizard.h
index 3b2204699..017ff49bc 100644
--- a/src/modules/setup/SetupWizard.h
+++ b/src/modules/setup/SetupWizard.h
@@ -138,6 +138,7 @@ protected:
void makeLink();
void setUrlHandlers();
virtual void showEvent(QShowEvent *e);
+ void enableOrDisableIdentityPageNextButton();
public slots:
void chooseOldDataPath();
void chooseDataPath();
@@ -149,9 +150,10 @@ public slots:
void newDirClicked();
void portableClicked();
- void oldDataTextChanged ( const QString & );
- void newDataTextChanged ( const QString & );
- void newIncomingTextChanged ( const QString & );
+ void nickSelectorTextChanged(const QString & );
+ void oldDataTextChanged(const QString & );
+ void newDataTextChanged(const QString & );
+ void newIncomingTextChanged(const QString & );
};