readSettings();
m_console->connect();
- m_medialist->populateTree();
}
void MainWin::createPages()
{
DIRRES *dir;
-
QTreeWidgetItem *item, *topItem;
- m_console = new Console(stackedWidget);
- stackedWidget->addWidget(m_console);
-
- bRestore *brestore = new bRestore(stackedWidget);
- stackedWidget->addWidget(brestore);
-
- m_medialist = new MediaList(stackedWidget, m_console);
- stackedWidget->addWidget(m_medialist);
+ /* Create console tree stacked widget item */
+ m_console = new Console(stackedWidget);
+ /* Console is special -> needs director*/
/* Just take the first Director */
LockRes();
dir = (DIRRES *)GetNextRes(R_DIRECTOR, NULL);
m_console->setDirRes(dir);
UnlockRes();
-
- topItem = createTopPage(dir->name(), false);
+ /* The top tree item representing the director */
+ topItem = createTopPage(dir->name());
topItem->setIcon(0, QIcon(QString::fromUtf8("images/server.png")));
-
- item = createPage("Console", topItem, true);
+ /* Create Tree Widget Item */
+ item = createPage("Console", topItem);
m_console->setTreeItem(item);
+ /* Append to bstacklist */
+ m_bstacklist.append(m_console);
+ /* Set BatStack m_treeItem */
+ m_console->SetBSTreeWidgetItem(item);
QBrush redBrush(Qt::red);
item->setForeground(0, redBrush);
- item = createPage("brestore", topItem, true);
- item = createPage("MediaList", topItem, true);
+ /* Now with the console created, on with the rest, these are easy */
+ /* All should be
+ * 1. create tree widget item
+ * 2. create object passing pointer to tree widget item (modified constructors to pass QTreeWidget pointers)
+ * 3. append to stacklist
+ * And it can even be done in one line.
+ * */
- treeWidget->expandItem(topItem);
+ /* brestore */
+ m_bstacklist.append(new bRestore( stackedWidget, createPage("brestore", topItem) ));
+
+ /* lastly for now, the medialist */
+ m_bstacklist.append(new MediaList(stackedWidget, m_console, createPage("Storage Tree", topItem )));
+
+ /* Iterate through and add to the stack */
+ for ( QList<BatStack*>::iterator bstackItem = m_bstacklist.begin(); bstackItem != m_bstacklist.end(); ++bstackItem ) {
+ (*bstackItem)->AddTostack();
+ }
+ treeWidget->expandItem(topItem);
stackedWidget->setCurrentIndex(0);
}
-QTreeWidgetItem *MainWin::createTopPage(char *name, bool canDisplay)
+/* Create a root Tree Widget */
+QTreeWidgetItem *MainWin::createTopPage(char *name )
{
QTreeWidgetItem *item = new QTreeWidgetItem(treeWidget);
item->setText(0, name);
- if (canDisplay) {
- item->setData(0, Qt::UserRole, QVariant(m_pages++));
- } else {
- item->setData(0, Qt::UserRole, QVariant(-1));
- }
return item;
}
-QTreeWidgetItem *MainWin::createPage(char *name, QTreeWidgetItem *parent, bool canDisplay)
+/* Create A Tree Widget Item which will be associated with a Page in the stacked widget */
+QTreeWidgetItem *MainWin::createPage(char *name, QTreeWidgetItem *parent)
{
QTreeWidgetItem *item = new QTreeWidgetItem(parent);
item->setText(0, name);
- if (canDisplay) {
- item->setData(0, Qt::UserRole, QVariant(m_pages++));
- } else {
- item->setData(0, Qt::UserRole, QVariant(-1));
- }
return item;
}
-
/*
* Handle up and down arrow keys for the command line
* history.
connect(lineEdit, SIGNAL(returnPressed()), this, SLOT(input_line()));
connect(actionAbout_bat, SIGNAL(triggered()), this, SLOT(about()));
- connect(treeWidget, SIGNAL(itemActivated(QTreeWidgetItem *, int)), this,
- SLOT(treeItemClicked(QTreeWidgetItem *, int)));
- connect(treeWidget, SIGNAL(itemClicked(QTreeWidgetItem *, int)), this,
+/* connect(treeWidget, SIGNAL(itemActivated(QTreeWidgetItem *, int)), this,
SLOT(treeItemClicked(QTreeWidgetItem *, int)));
connect(treeWidget, SIGNAL(itemPressed(QTreeWidgetItem *, int)), this,
+ SLOT(treeItemClicked(QTreeWidgetItem *, int))); Commented out because it was getting to clicked multiple times*/
+ connect(treeWidget, SIGNAL(itemClicked(QTreeWidgetItem *, int)), this,
SLOT(treeItemClicked(QTreeWidgetItem *, int)));
connect(treeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this,
SLOT(treeItemDoubleClicked(QTreeWidgetItem *, int)));
void MainWin::treeItemClicked(QTreeWidgetItem *item, int column)
{
- int index = item->data(column, Qt::UserRole).toInt();
- if (index >= 0) {
- stackedWidget->setCurrentIndex(index);
+ /* Iterate through and find the tree widget item clicked */
+ column+=0;
+ QList<BatStack*>::iterator bstackItem;
+ bstackItem = m_bstacklist.begin();
+ while ( bstackItem != m_bstacklist.end() ){
+ if ( item == (*bstackItem)->m_treeItem ) {
+ int stackindex=stackedWidget->indexOf( *bstackItem );
+ if( stackindex >= 0 ){
+ stackedWidget->setCurrentIndex(stackindex);
+ }
+ (*bstackItem)->PgSeltreeWidgetClicked();
+ }
+ ++bstackItem;
}
}
*/
void MainWin::treeItemDoubleClicked(QTreeWidgetItem *item, int column)
{
- int index = item->data(column, Qt::UserRole).toInt();
- if (index >= 0) {
- stackedWidget->setCurrentIndex(index);
+ /* Iterate through and find the tree widget item double clicked */
+ column+=0;
+ QList<BatStack*>::iterator bstackItem;
+ bstackItem = m_bstacklist.begin();
+ while ( bstackItem != m_bstacklist.end() ){
+ if ( item == (*bstackItem)->m_treeItem ) {
+ /* This could be a call a virtual function ?? or just popup a popup menu for an action */
+ if ( (*bstackItem)->isStacked() == true ){
+ m_bstackpophold=*bstackItem;
+ QMenu *popup = new QMenu( treeWidget );
+ connect(popup->addAction("Pull Window Out"), SIGNAL(triggered()), this, SLOT(pullWindowOut()));
+ popup->exec(QCursor::pos());
+ } else {
+ (*bstackItem)->Togglestack();
+ }
+ (*bstackItem)->PgSeltreeWidgetDoubleClicked();
+ }
+ ++bstackItem;
}
}
{
statusBar()->showMessage(buf);
}
+
+void MainWin::pullWindowOut()
+{
+ m_bstackpophold->Togglestack();
+}