//File recentmessageswidget.h [A simple class Containing 2 listwidgets]
class RecentMessagesWidget
: public QWidget{
Q_OBJECT
public:
explicit RecentMessagesWidget
(QWidget *parent
= 0);
~RecentMessagesWidget();
public:
public slots:
void processResults();
void reportAsSpam();
};
//recentmessageswidget.cpp
#include "recentmessageswidget.h"
RecentMessagesWidget
::RecentMessagesWidget(QWidget *parent
) :{
processResults();
}
RecentMessagesWidget::~RecentMessagesWidget()
{
}
void RecentMessagesWidget::processResults()
{
//I_messageListWidget = new QListWidget(this);
//S_messageListWidget = new QListWidget(this);
S_messageListWidget
->insertItem
(4,
QString("In fn PR"));
// added in the list
}
void RecentMessagesWidget :: reportAsSpam()
{
int cr = I_messageListWidget->currentRow();
//I_messageListWidget->update();
//S_messageListWidget = new QListWidget(this);
S_messageListWidget->insertItem(0,temp); // PROBLEM is here...
S_messageListWidget
->insertItem
(5,
QString("spm tab in fn"));
// not added in the list
S_messageListWidget->update();
I_messageListWidget->update();
}
//In file tabmain.h
{
Q_OBJECT
public:
~TabMain();
private:
void buildTabMenuBar(int index);
signals:
public slots:
void activeTabChanged(int index);
private:
};
{
Q_OBJECT
public:
~InBoxTab();
void setupUi();
public slots:
void hello();
void rspam();
private:
RecentMessagesWidget* m_recentMessagesWidget;
};
{
Q_OBJECT
public:
~SpamBoxTab();
void setupUi();
public slots:
void hello();
private:
RecentMessagesWidget* sm_recentMessagesWidget;
};
TabMain
::TabMain(QWidget *parent
) :{
setContextMenuPolicy(Qt::NoContextMenu);
this->setWindowTitle("SMSAssassin Alpha");
tabWidget->setContextMenuPolicy(Qt::NoContextMenu);
QObject::connect(tabWidget,
SIGNAL(currentChanged
(int)),
this,
SLOT(activeTabChanged
(int)));
InBoxTab* widget1 = new InBoxTab();
tabWidget->addTab(widget1, " INBOX ");
SpamBoxTab* widget2 = new SpamBoxTab();
tabWidget->addTab(widget2, " SPAMBOX ");
//adda();
setCentralWidget(tabWidget);
#ifdef Q_OS_SYMBIAN
foreach(w,widgets)
{
w->setContextMenuPolicy(Qt::NoContextMenu);
}
#endif
}
TabMain::~TabMain()
{
}
void TabMain::activeTabChanged(int index)
{
buildTabMenuBar(index);
}
void TabMain::buildTabMenuBar(int index)
{
menubar->clear();
switch(index)
{
case 0:
{
menubar -> addAction("Inbox user Menu", tabWidget->widget(index),SLOT( hello() ) );
menubar -> addAction("Report as Spam", tabWidget->widget(index), SLOT( rspam() ) );
break;
}
case 1:
{
menubar -> addAction("SpamBox user Menu", tabWidget->widget(index), SLOT(hello()) );
break;
}
default:
{
break;
}
}
}
InBoxTab
::InBoxTab(QWidget *parent
) : m_recentMessagesWidget(0)
{
setupUi();
}
InBoxTab:: ~InBoxTab()
{
}
void InBoxTab::setupUi()
{
m_recentMessagesWidget = new RecentMessagesWidget(this);
vbl->addWidget(m_recentMessagesWidget->I_messageListWidget);
this->setLayout(vbl);
}
void InBoxTab :: rspam()
{
m_recentMessagesWidget->reportAsSpam();
}
void InBoxTab::hello()
{
QString message
= QString("Hello from %1").
arg(metaObject
()->className
());
messageBox->exec();
delete messageBox;
messageBox = 0;
}
SpamBoxTab
::SpamBoxTab(QWidget *parent
) :{
setupUi();
}
void SpamBoxTab::setupUi()
{
sm_recentMessagesWidget = new RecentMessagesWidget(this);
vbl->addWidget(sm_recentMessagesWidget->S_messageListWidget);
this->setLayout(vbl);
}
SpamBoxTab::~SpamBoxTab()
{
}
void SpamBoxTab::hello()
{
QString message
= QString("Hello from %1").
arg(metaObject
()->className
());
messageBox->exec();
delete messageBox;
messageBox = 0;
}
//File recentmessageswidget.h [A simple class Containing 2 listwidgets]
class RecentMessagesWidget : public QWidget
{
Q_OBJECT
public:
explicit RecentMessagesWidget(QWidget *parent = 0);
~RecentMessagesWidget();
public:
QListWidget* I_messageListWidget;
QListWidget* S_messageListWidget;
public slots:
void processResults();
void reportAsSpam();
};
//recentmessageswidget.cpp
#include "recentmessageswidget.h"
RecentMessagesWidget::RecentMessagesWidget(QWidget *parent) :
QWidget(parent)
{
I_messageListWidget = new QListWidget(this);
S_messageListWidget = new QListWidget(this);
processResults();
}
RecentMessagesWidget::~RecentMessagesWidget()
{
}
void RecentMessagesWidget::processResults()
{
//I_messageListWidget = new QListWidget(this);
I_messageListWidget->addItem(new QListWidgetItem("I1"));
I_messageListWidget->addItem(new QListWidgetItem("I2"));
I_messageListWidget->addItem(new QListWidgetItem("I3"));
//S_messageListWidget = new QListWidget(this);
S_messageListWidget->addItem(new QListWidgetItem("S1"));
S_messageListWidget->addItem(new QListWidgetItem("S2"));
S_messageListWidget->addItem(new QListWidgetItem("S3"));
S_messageListWidget->insertItem(4,QString("In fn PR")); // added in the list
}
void RecentMessagesWidget :: reportAsSpam()
{
int cr = I_messageListWidget->currentRow();
QListWidgetItem *temp = I_messageListWidget->takeItem(cr);
//I_messageListWidget->update();
//S_messageListWidget = new QListWidget(this);
S_messageListWidget->insertItem(0,temp); // PROBLEM is here...
S_messageListWidget->insertItem(5,QString("spm tab in fn")); // not added in the list
S_messageListWidget->update();
I_messageListWidget->update();
}
//In file tabmain.h
class TabMain : public QMainWindow
{
Q_OBJECT
public:
TabMain(QWidget *parent = 0);
~TabMain();
private:
void buildTabMenuBar(int index);
signals:
public slots:
void activeTabChanged(int index);
private:
QTabWidget* tabWidget;
};
class InBoxTab : public QWidget
{
Q_OBJECT
public:
InBoxTab(QWidget *parent = 0);
~InBoxTab();
void setupUi();
public slots:
void hello();
void rspam();
private:
RecentMessagesWidget* m_recentMessagesWidget;
};
class SpamBoxTab: public QWidget
{
Q_OBJECT
public:
SpamBoxTab(QWidget *parent = 0);
~SpamBoxTab();
void setupUi();
public slots:
void hello();
private:
RecentMessagesWidget* sm_recentMessagesWidget;
};
TabMain::TabMain(QWidget *parent) :
QMainWindow(parent)
{
setContextMenuPolicy(Qt::NoContextMenu);
this->setWindowTitle("SMSAssassin Alpha");
tabWidget = new QTabWidget(this);
tabWidget->setContextMenuPolicy(Qt::NoContextMenu);
QObject::connect(tabWidget, SIGNAL(currentChanged(int)),this, SLOT(activeTabChanged(int)));
InBoxTab* widget1 = new InBoxTab();
tabWidget->addTab(widget1, " INBOX ");
SpamBoxTab* widget2 = new SpamBoxTab();
tabWidget->addTab(widget2, " SPAMBOX ");
//adda();
setCentralWidget(tabWidget);
#ifdef Q_OS_SYMBIAN
QWidgetList widgets = QApplication::allWidgets();
QWidget* w = 0;
foreach(w,widgets)
{
w->setContextMenuPolicy(Qt::NoContextMenu);
}
#endif
}
TabMain::~TabMain()
{
}
void TabMain::activeTabChanged(int index)
{
buildTabMenuBar(index);
}
void TabMain::buildTabMenuBar(int index)
{
QMenuBar* menubar = menuBar();
menubar->clear();
switch(index)
{
case 0:
{
menubar -> addAction("Inbox user Menu", tabWidget->widget(index),SLOT( hello() ) );
menubar -> addAction("Report as Spam", tabWidget->widget(index), SLOT( rspam() ) );
break;
}
case 1:
{
menubar -> addAction("SpamBox user Menu", tabWidget->widget(index), SLOT(hello()) );
break;
}
default:
{
break;
}
}
}
InBoxTab::InBoxTab(QWidget *parent) :
QWidget(parent),
m_recentMessagesWidget(0)
{
setupUi();
}
InBoxTab:: ~InBoxTab()
{
}
void InBoxTab::setupUi()
{
QVBoxLayout* vbl = new QVBoxLayout(this);
m_recentMessagesWidget = new RecentMessagesWidget(this);
vbl->addWidget(m_recentMessagesWidget->I_messageListWidget);
this->setLayout(vbl);
}
void InBoxTab :: rspam()
{
m_recentMessagesWidget->reportAsSpam();
}
void InBoxTab::hello()
{
QString message = QString("Hello from %1").arg(metaObject()->className());
QMessageBox* messageBox = new QMessageBox(QMessageBox::Information, "QTabsExample", message,
QMessageBox::Ok, this);
messageBox->exec();
delete messageBox;
messageBox = 0;
}
SpamBoxTab::SpamBoxTab(QWidget *parent) :
QWidget(parent)
{
setupUi();
}
void SpamBoxTab::setupUi()
{
QVBoxLayout* vbl = new QVBoxLayout(this);
sm_recentMessagesWidget = new RecentMessagesWidget(this);
vbl->addWidget(sm_recentMessagesWidget->S_messageListWidget);
this->setLayout(vbl);
}
SpamBoxTab::~SpamBoxTab()
{
}
void SpamBoxTab::hello()
{
QString message = QString("Hello from %1").arg(metaObject()->className());
QMessageBox* messageBox = new QMessageBox(QMessageBox::Information, "QTabs", message,
QMessageBox::Ok, this);
messageBox->exec();
delete messageBox;
messageBox = 0;
}
To copy to clipboard, switch view to plain text mode
Bookmarks